脚本详情
注意修改自己的端口 (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
@setlocal enabledelayedexpansion
@echo off
color f0
rem 编程技术 www.vcvb.cn 出品,转载请保留此信息。
rem 我做了改动 tannn.cn
title MYSQL一键安装
set basedir=%~dp0
set bin=%~dp0\bin
cd /d %~dp0
if exist !bin!\mysqld.exe (
rem 写入配置
>my.ini echo [mysqld]
>>my.ini echo port=3316
>>my.ini echo basedir=%basedir:\=\\%
>>my.ini echo datadir=%basedir:\=\\%data
>>my.ini echo log-error=%basedir:\=\\%logs.logs
>>my.ini echo max_connections=200
>>my.ini echo max_connect_errors=10
>>my.ini echo character-set-server=utf8mb4
>>my.ini echo default-storage-engine=INNODB
>>my.ini echo default_authentication_plugin=mysql_native_password
>>my.ini echo local_infile=ON
>>my.ini echo sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
>>my.ini echo log-bin=mysql-bin
>>my.ini echo binlog-format=Row
>>my.ini echo.
>>my.ini echo [mysql]
>>my.ini echo default-character-set=utf8mb4
>>my.ini echo local_infile=ON
>>my.ini echo.
>>my.ini echo [client]
>>my.ini echo port=3316
>>my.ini echo default-character-set=utf8mb4
rem 添加环境变量
echo 开始检查环境变量...
echo.
for /f "tokens=2*" %%i ^
in ('reg query "HKLM\SYSTEM\ControlSet001\Control\Session Manager\Environment" /v Path^|findstr /i "path"') ^
do (set "p=%%j")
for /f "tokens=*" %%a in ('echo !p! ^| find /i "!bin!"') do (set flag=1)
if not defined flag (
echo 开始添加环境变量
setx Path "!p!;!bin!" /M | find "成功" && echo 环境变量添加成功
set p=!Path!
) else (echo 环境变量已存在,无需设置。)
echo.
rem 初始化 --console
cd !bin!
>!basedir!\logs.log echo --------初始化数据库开始--------
echo 开始初始化数据库
mysqld --initialize-insecure
>>!basedir!\logs.log echo --------初始化数据库结束--------
rem 安装服务
echo 开始安装服务
mysqld --install mysql | find "successfully" && echo 服务安装成功
echo.
rem 启动服务
echo 开始启动MYSQL服务
net start mysql
echo.
mysql -u root -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123131'";
echo 安装完成
) else (
echo 请将本工具放在解压后的MySQL根目录下再打开
)
pause >nubatr
注意事项
mysqld: Can‘t create directory ‘xxx‘ (OS errno 2 No such file or directo
- 由于15,16,17行写 my.ini 文件时,获取的data路径为但斜杠导致我这里发生了这个问题
参考:https://zhidao.baidu.com/question/590987493.html 的方法处理 set v=%~sdp0
echo 批处理文件所在路径转为双斜杠短名: %v:\=\%
echo 当前批处理正工作的路径转换后: %cd:\=\%