肥宅自学平台_人人成为技术开发者

肥宅人只等待您,联系我们吧,曾经的巅峰是否能回来?我们正在用心服务!

windows自动安装解压mysql8脚本

 更新时间:2024-01-22 08:43:09   作者:肥宅-季波   我要评论(0)  

         mysql 8的MSI安装包,默认自动把程序安装到了C盘,无法手动更改安装位置。这款Windows自动安装解压mysql8脚本就可以解决这个问题,可以将 mysql 8 以及其 Data目录 安装到C盘以外的位置。

bat脚本代码
  1. @echo off
  2. :: 设置将要生成的文件的路径
  3. set base_dir=%cd%
  4. set data_dir=%base_dir%\Data
  5. set myini_file=%base_dir%\my.ini
  6. set Uploads_dir=%base_dir%\Uploads
  7.   
  8. :: 设置一些变量默认值
  9. set agree=Y
  10. set data_is_empty=0
  11. set is_gen_start_file=N
  12. set is_install_service=N
  13. set is_clear_datadir=N
  14. set is_add_path=N
  15.   
  16. :: 判断脚本当前所在的位置
  17. %cd%/bin/mysql.exe --version >nul
  18. if not %errorlevel%==0 (
  19.     echo 脚本执行结束,请将此脚本移动到mysql程序的根目录下再执行(跟bin目录同一级目录)
  20.     goto end
  21. )
  22.   
  23. :: 打印程序安装说明
  24. echo 使用说明:
  25. echo 使用此脚本安装mysql时,会将保存数据的Data目录以及my.ini文件放在MySQL程序的根目录下:
  26. echo %base_dir%
  27. echo 可以修改此脚本的路径变量进行重新指定路径
  28. set /p agree=如果同意,按任意键继续,按q键退出:
  29. if /i %agree%==Q (
  30.     echo 退出安装
  31.     goto end
  32. ) else if /i not %agree%==Q (
  33.     echo 脚本开始安装mysql.......
  34. )
  35.   
  36. :: 生成my.ini配置文件
  37. if not exist %myini_file% (
  38.     echo [mysqld] >> %myini_file%
  39.     echo basedir=%cd% >> %myini_file%
  40.     echo datadir=%data_dir% >> %myini_file%
  41.     echo secure-file-priv=%cd%\Uploads >> %myini_file%
  42.     echo 生成my.ini文件:%myini_file%
  43. ) else (
  44.     echo %myini_file%文件已存在,即将使用该配置文件
  45. )
  46.   
  47. :: 创建 Uploads 目录
  48. if not exist %Uploads_dir% (
  49.     md %Uploads_dir%
  50.     echo 创建Uploads目录:%Uploads_dir%
  51. ) else (
  52.     echo %Uploads_dir%目录已存在,跳过创建
  53. )
  54.   
  55. :: 创建 Data 目录
  56. :md_data_dir
  57. if not exist %data_dir% (
  58.     md %data_dir%
  59.     echo 创建Data目录:%data_dir%
  60.     :: 创建了目录后,直接进行安装
  61.     goto initialize_data
  62. ) else (
  63.     goto data_dir_check
  64. )
  65.   
  66. :: 如果Data目录已存在,则检查Data目录是否为空
  67. :data_dir_check
  68. for /f "tokens=* delims=" %%i in ('dir /b /a "%data_dir%"') do (
  69.     set /p is_clear_datadir=%data_dir%目录已存在,并且目录不为空,是否清空Data目录(N不清空,Y清空):
  70.     goto clear_datadir
  71. )
  72.   
  73. if %data_is_empty%==0 (
  74.     echo %data_dir%为空,即将初始化Data目录进行安装
  75.     goto initialize_data
  76. )
  77.   
  78. :clear_datadir
  79. if /i %is_clear_datadir%==Y (
  80.     echo 正在清空%data_dir%
  81.     rd /s /q %data_dir%
  82.     goto :md_data_dir
  83. ) else if /i %is_clear_datadir%==N (
  84.     echo 跳过清空Data目录,即将进行不初化安装
  85.     goto :install_service
  86. ) else (
  87.     goto :data_dir_check
  88. )
  89.   
  90. :initialize_data
  91. echo 正在初始化Mysql....
  92. %base_dir%/bin/mysqld.exe --defaults-file=%myini_file% --initialize-insecure --console
  93. echo MySQL初始化完毕!
  94. echo ===================================================
  95. echo 注意!root用户的密码为空!
  96. echo ===================================================
  97.   
  98. :need_install_service
  99. set /p is_install_service=是否需要将MySQL设置成为windows系统服务(需要管理员身份)(Y/N,默认N):
  100. if /i %is_install_service%==Y (
  101.     goto install_service
  102. ) else if /i %is_install_service%==N (
  103.     echo 已选择无须将MySQL设置为系统服务
  104.     goto gen_start_file
  105. ) else (
  106.     goto need_install_service
  107. )
  108.   
  109. :install_service
  110. echo 正在将检查windows服务......
  111. :: sc query  type^= all ^| findstr /i "SERVICE_NAME"
  112. for /F "tokens=2" %%i in (' sc query type^= service state^= all ^| findstr /i "MySQL" ^| findstr /i "SERVICE_NAME" ') do (
  113.     for /F "tokens=* delims=" %%s in ('sc qc %%i ^| findstr /i "BINARY_PATH_NAME"' ) do (
  114.         echo %%s | find /i "%base_dir%" > NUL &&  echo MySQL已经是Windows系统服务 & goto gen_start_file
  115.     )
  116. )
  117. echo 正在将MySQL注册成为Windows系统服务......
  118. %base_dir%/bin/mysqld.exe --install MySQL8 --defaults-file=%myini_file%
  119. sc config MySQL8 start=demand
  120.   
  121. :gen_start_file
  122. set /p is_gen_start_file=是否需要在bin目录下生成一键启动脚本mysqld_start(Y/N,默认N):
  123. if /i %is_gen_start_file%==Y (
  124.     echo mysqld.exe --defaults-file=%myini_file% --console > %base_dir%/bin/mysqld_start.bat
  125. ) else (
  126.     echo 已选择不生成一键启动脚本。
  127. )
  128.   
  129. :: 添加到用户级的环境变量
  130. set /p is_add_path=是否需要将MySQL添加到环境变量(Y/N,默认N):
  131. if /i %is_add_path%==N (
  132.     echo 已跳过添加MySQL到环境变量
  133. ) else (
  134.     set path | find /i "%base_dir%\bin" > nul || setx PATH "%PATH%;%base_dir%\bin"
  135.     echo 已添加环境变量
  136. )
  137.   
  138. :end
  139. echo 脚本执行完毕!!!
"小礼物走一走,来肥宅自学平台支持我"
评论区

评论

共条评论
  • 这篇文章还没有收到评论,赶紧来抢沙发吧~
客服中心在线客服
全心全意为平台用户服务
Copyright © 2017-2023 自学平台网站地图:去查看>
  • 肥宅人自己的自学平台
  • 人人都能成为平台讲师
  • 贡献你的力量壮大肥宅自学平台
  • 将自己的能力变现
  • 实现人生的第二职业
网址收藏平台安卓APP
微信公众号微信公众号

本站部分图片或者资源来自程序自动采集或卖家(商家)发布,如果侵犯了您的权益请与我们联系,我们将在24小时内删除!谢谢!

肥宅自学教程网是一个主打IT视频教程、自媒体运行、摄影剪辑等内容的资源学习交流平台。