脚本详情

注意修改自己的端口 (14,33行) 注意修改自己的root密码 (70行) 注意24行我修改了mysql关于group by 的规则 : 参考

  • only_full_group_by 模式开启比较好。因为在 mysql 中有一个函数: any_value(field) 允许,非分组字段的出现(和关闭 only_full_group_by 模式有相同效果)。

注意25-6行我开启了binlog(show variables like ‘log_%’;) mysql地址:https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.25-winx64.zip

  1. @setlocal enabledelayedexpansion
  2. @echo off
  3. color f0
  4. rem 编程技术 www.vcvb.cn 出品,转载请保留此信息。
  5. rem 我做了改动 tannn.cn
  6. title MYSQL一键安装
  7. set basedir=%~dp0
  8. set bin=%~dp0\bin
  9. cd /d %~dp0
  10. if exist !bin!\mysqld.exe (
  11. rem 写入配置
  12. >my.ini echo [mysqld]
  13. >>my.ini echo port=3316
  14. >>my.ini echo basedir=%basedir:\=\\%
  15. >>my.ini echo datadir=%basedir:\=\\%data
  16. >>my.ini echo log-error=%basedir:\=\\%logs.logs
  17. >>my.ini echo max_connections=200
  18. >>my.ini echo max_connect_errors=10
  19. >>my.ini echo character-set-server=utf8mb4
  20. >>my.ini echo default-storage-engine=INNODB
  21. >>my.ini echo default_authentication_plugin=mysql_native_password
  22. >>my.ini echo local_infile=ON
  23. >>my.ini echo sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
  24. >>my.ini echo log-bin=mysql-bin
  25. >>my.ini echo binlog-format=Row
  26. >>my.ini echo.
  27. >>my.ini echo [mysql]
  28. >>my.ini echo default-character-set=utf8mb4
  29. >>my.ini echo local_infile=ON
  30. >>my.ini echo.
  31. >>my.ini echo [client]
  32. >>my.ini echo port=3316
  33. >>my.ini echo default-character-set=utf8mb4
  34. rem 添加环境变量
  35. echo 开始检查环境变量...
  36. echo.
  37. for /f "tokens=2*" %%i ^
  38. in ('reg query "HKLM\SYSTEM\ControlSet001\Control\Session Manager\Environment" /v Path^|findstr /i "path"') ^
  39. do (set "p=%%j")
  40. for /f "tokens=*" %%a in ('echo !p! ^| find /i "!bin!"') do (set flag=1)
  41. if not defined flag (
  42. echo 开始添加环境变量
  43. setx Path "!p!;!bin!" /M | find "成功" && echo 环境变量添加成功
  44. set p=!Path!
  45. ) else (echo 环境变量已存在,无需设置。)
  46. echo.
  47. rem 初始化 --console
  48. cd !bin!
  49. >!basedir!\logs.log echo --------初始化数据库开始--------
  50. echo 开始初始化数据库
  51. mysqld --initialize-insecure
  52. >>!basedir!\logs.log echo --------初始化数据库结束--------
  53. rem 安装服务
  54. echo 开始安装服务
  55. mysqld --install mysql | find "successfully" && echo 服务安装成功
  56. echo.
  57. rem 启动服务
  58. echo 开始启动MYSQL服务
  59. net start mysql
  60. echo.
  61. mysql -u root -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123131'";
  62. echo 安装完成
  63. ) else (
  64. echo 请将本工具放在解压后的MySQL根目录下再打开
  65. )
  66. pause >nubatr

注意事项

mysqld: Can‘t create directory ‘xxx‘ (OS errno 2 No such file or directo

  1. 由于15,16,17行写 my.ini 文件时,获取的data路径为但斜杠导致我这里发生了这个问题

    参考:https://zhidao.baidu.com/question/590987493.html 的方法处理 set v=%~sdp0
    echo 批处理文件所在路径转为双斜杠短名: %v:\=\%
    echo 当前批处理正工作的路径转换后: %cd:\=\%

缺少vcruntime140_1.dll

下载地址:https://download.visualstudio.microsoft.com/download/pr/f1998402-3cc0-466f-bd67-d9fb6cd2379b/A1592D3DA2B27230C087A3B069409C1E82C2664B0D4C3B511701624702B2E2A3/VC_redist.x64.exe