mysql 8的MSI安装包,默认自动把程序安装到了C盘,无法手动更改安装位置。这款Windows自动安装解压mysql8脚本就可以解决这个问题,可以将 mysql 8 以及其 Data目录 安装到C盘以外的位置。
bat脚本代码
bat脚本代码
- @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 脚本执行完毕!!!
"小礼物走一走,来肥宅自学平台支持我"
评论区
共条评论
- 这篇文章还没有收到评论,赶紧来抢沙发吧~
首页上页1下页尾页