站长工具箱,网站怎么做站群,怎样在外贸网站上做土特产,wordpress json 分类由于mysql 8的 MSI 安装包#xff0c;自动把程序安装到了C盘#xff0c;且没看到有可以更改安装位置的配置可以修改。
故自行写了一个脚本#xff0c;用来安装mysql 8的压缩包。可以将 mysql 8 以及其 Data目录 安装到C盘以外的位置。第一次写 bat 脚本#xff0c;希望各位…由于mysql 8的 MSI 安装包自动把程序安装到了C盘且没看到有可以更改安装位置的配置可以修改。
故自行写了一个脚本用来安装mysql 8的压缩包。可以将 mysql 8 以及其 Data目录 安装到C盘以外的位置。第一次写 bat 脚本希望各位大佬多赐教 注意自动安装zip压缩包不是msi安装包 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 agreeY
set data_is_empty0
set is_gen_start_fileN
set is_install_serviceN
set is_clear_datadirN
set is_add_pathN:: 判断脚本当前所在的位置
%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 tokens2 %%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 startdemand: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%\binecho 已添加环境变量
):end
echo 脚本执行完毕