ZIP解压版mysql8在Windows系统下自动安装的bat脚本
[重要通告]如您遇疑难杂症,本站支持知识付费业务,扫右边二维码加博主微信,可节省您宝贵时间哦!
由于mysql 8的 MSI 安装包,自动把程序安装到了C盘,木有注意到更改安装位置的配置可以修改;故写了一个脚本,用来安装mysql 8的压缩包。可将 mysql8以及其 Data目录 安装到C盘以外的位置。
ZIP解压版mysql8在Windows系统下自动安装的bat脚本
正确的食用方式:把如下脚本文件保存问bat,下载官方的zip文件放在一起,直接运行即可!
脚本文件直接放到mysql根目录下,以管理员身份执行即可。注意修改data路径、端口号、设置复杂密码,默认my.ini仅供参考。
第一种方式:
@echo off echo Please run as administrator. set currentDir=%~dp0 set currentDir=%currentDir:\=/% set basedir=%currentDir% set mysqld="%currentDir%bin\mysqld" set mysqladmin="%currentDir%bin\mysqladmin" set port=3308 set rootPwd=Laoliang.net set datadir=%currentDir%data/ set serviceName=mysql57 ( echo [mysql] echo default-character-set=utf8 echo [mysqld] echo character-set-server=utf8 echo port=%port% echo basedir="%basedir%" echo datadir="%datadir%" echo max_connections=200 echo show_compatibility_56=1 echo default-storage-engine=INNODB echo sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION ) > "%basedir%\my.ini" %mysqld% --initialize-insecure --user=mysql --explicit_defaults_for_timestamp --console %mysqld% --install %serviceName% net start %serviceName% echo The initial password is empty, just press Enter. %mysqladmin% -P %port% -u root -p password %rootPwd% pause
第二种方式:
@echo off :: 设置将要生成的文件的路径 set base_dir=%cd% set data_dir=%base_dir%\Data set myini_file=%base_dir%\my.ini set Uploads_dir=%base_dir%\Uploads :: 设置一些变量默认值 set agree=Y set data_is_empty=0 set is_gen_start_file=N set is_install_service=N set is_clear_datadir=N set is_add_path=N :: 判断脚本当前所在的位置 %cd%/bin/mysql.exe --version >nul if not %errorlevel%==0 ( echo 脚本执行结束,请将此脚本移动到mysql程序的根目录下再执行(跟bin目录同一级目录) goto end ) :: 打印程序安装说明 echo 使用说明: echo 使用此脚本安装mysql时,会将保存数据的Data目录以及my.ini文件放在MySQL程序的根目录下: echo %base_dir% echo 可以修改此脚本的路径变量进行重新指定路径 set /p agree=如果同意,按任意键继续,按q键退出: if /i %agree%==Q ( echo 退出安装 goto end ) else if /i not %agree%==Q ( echo 脚本开始安装mysql....... ) :: 生成my.ini配置文件 if not exist %myini_file% ( echo [mysqld] >> %myini_file% echo basedir=%cd% >> %myini_file% echo datadir=%data_dir% >> %myini_file% echo secure-file-priv=%cd%\Uploads >> %myini_file% echo 生成my.ini文件:%myini_file% ) else ( echo %myini_file%文件已存在,即将使用该配置文件 ) :: 创建 Uploads 目录 if not exist %Uploads_dir% ( md %Uploads_dir% echo 创建Uploads目录:%Uploads_dir% ) else ( echo %Uploads_dir%目录已存在,跳过创建 ) :: 创建 Data 目录 :md_data_dir if not exist %data_dir% ( md %data_dir% echo 创建Data目录:%data_dir% :: 创建了目录后,直接进行安装 goto initialize_data ) else ( goto data_dir_check ) :: 如果Data目录已存在,则检查Data目录是否为空 :data_dir_check for /f "tokens=* delims=" %%i in ('dir /b /a "%data_dir%"') do ( set /p is_clear_datadir=%data_dir%目录已存在,并且目录不为空,是否清空Data目录(N不清空,Y清空): goto clear_datadir ) if %data_is_empty%==0 ( echo %data_dir%为空,即将初始化Data目录进行安装 goto initialize_data ) :clear_datadir if /i %is_clear_datadir%==Y ( echo 正在清空%data_dir% rd /s /q %data_dir% goto :md_data_dir ) else if /i %is_clear_datadir%==N ( echo 跳过清空Data目录,即将进行不初化安装 goto :install_service ) else ( goto :data_dir_check ) :initialize_data echo 正在初始化Mysql.... %base_dir%/bin/mysqld.exe --defaults-file=%myini_file% --initialize-insecure --console echo MySQL初始化完毕! echo =================================================== echo 注意!root用户的密码为空! echo =================================================== :need_install_service set /p is_install_service=是否需要将MySQL设置成为windows系统服务(需要管理员身份)(Y/N,默认N): if /i %is_install_service%==Y ( goto install_service ) else if /i %is_install_service%==N ( echo 已选择无须将MySQL设置为系统服务 goto gen_start_file ) else ( goto need_install_service ) :install_service echo 正在将检查windows服务...... :: sc query type^= all ^| findstr /i "SERVICE_NAME" for /F "tokens=2" %%i in (' sc query type^= service state^= all ^| findstr /i "MySQL" ^| findstr /i "SERVICE_NAME" ') do ( for /F "tokens=* delims=" %%s in ('sc qc %%i ^| findstr /i "BINARY_PATH_NAME"' ) do ( echo %%s | find /i "%base_dir%" > NUL && echo MySQL已经是Windows系统服务 & goto gen_start_file ) ) echo 正在将MySQL注册成为Windows系统服务...... %base_dir%/bin/mysqld.exe --install MySQL8 --defaults-file=%myini_file% sc config MySQL8 start=demand :gen_start_file set /p is_gen_start_file=是否需要在bin目录下生成一键启动脚本mysqld_start(Y/N,默认N): if /i %is_gen_start_file%==Y ( echo mysqld.exe --defaults-file=%myini_file% --console > %base_dir%/bin/mysqld_start.bat ) else ( echo 已选择不生成一键启动脚本。 ) :: 添加到用户级的环境变量 set /p is_add_path=是否需要将MySQL添加到环境变量(Y/N,默认N): if /i %is_add_path%==N ( echo 已跳过添加MySQL到环境变量 ) else ( set path | find /i "%base_dir%\bin" > nul || setx PATH "%PATH%;%base_dir%\bin" echo 已添加环境变量 ) :end echo 脚本执行完毕!!!
问题未解决?付费解决问题加Q或微信 2589053300 (即Q号又微信号)右上方扫一扫可加博主微信
所写所说,是心之所感,思之所悟,行之所得;文当无敷衍,落笔求简洁。 以所舍,求所获;有所依,方所成!
赏
支付宝赞助
微信赞助
免责声明,若由于商用引起版权纠纷,一切责任均由使用者承担。
您必须遵守我们的协议,如您下载该资源,行为将被视为对《免责声明》全部内容的认可->联系老梁投诉资源 LaoLiang.Net部分资源来自互联网收集,仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。
敬请谅解! 侵权删帖/违法举报/投稿等事物联系邮箱:service@laoliang.net
意在交流学习,欢迎赞赏评论,如有谬误,请联系指正;转载请注明出处: » ZIP解压版mysql8在Windows系统下自动安装的bat脚本