已测试可用的版本
MySQL 8.0;
环境:
windows7/10
MySQL 8.0.15免安装版
项目需求
需要实现一个自动化MySQL配置安装及初始化数据库(初始化包括:设置用户名和密码)。
批处理
用来对某对象进行批量的处理,即可通过批处理让相应的软件执行自动化操作。
MySQL免安装版使用步骤:
1.配置环境变量
2.创建MySQL配置文件
3.注册MySQL服务
4.启动MySQL服务
5.设置MySQL数据库用户名密码为指定的账户密码。
本文章问题的解决方式就是使用批处理来实现以上步骤。
1、下载mysql安装包
下载mysql-8.0.15-winx64.zip,地址https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.15-winx64.zip
2、写bat文件
把文件夹解压缩到D盘(或解压到其他位置),在目录下新建初始化数据库.bat、初始化密码.bat和setpwd.sql
初始化数据库.bat内代码的内容为
@ECHO ON
@echo 设置环境变量
@SET sqlpath=%~dp0
@setx /M PATH "%sqlpath%bin;%path%"
@echo 初始化数据库配置文件
@del %sqlpath%\my.ini
@echo [mysqld]>>%sqlpath%\my.ini
@echo port=3306>>%sqlpath%\my.ini
@echo basedir=%sqlpath%>>%sqlpath%\my.ini
@echo datadir=%sqlpath%\data>>%sqlpath%\my.ini
@echo max_connections=200>>%sqlpath%\my.ini
@echo max_connect_errors=10>>%sqlpath%\my.ini
@echo character-set-server=utf8mb4>>%sqlpath%\my.ini
@echo default-storage-engine=INNODB>>%sqlpath%\my.ini
@echo default_authentication_plugin=mysql_native_password>>%sqlpath%\my.ini
@echo [mysql]>>%sqlpath%\my.ini
@echo default-character-set=utf8mb4>>%sqlpath%\my.ini
@echo [client]>>%sqlpath%\my.ini
@echo default-character-set=utf8mb4>>%sqlpath%\my.ini
@echo port=3306>>%sqlpath%\my.ini
@%sqlpath%\bin\mysqld.exe --initialize-insecure --lower-case-table-names=1 --user=mysql --console
@echo 开始安装数据库
@%sqlpath%\bin\mysqld.exe --install
@net start mysql
@pause
初始化密码.bat内代码的内容为
@ECHO ON
@echo 初始化密码
@SET sqlpath=%~dp0
@%sqlpath%\bin\mysql.exe -uroot < %sqlpath%\setpwd.sql
@pause
setpwd.sql内容为
use mysql;
select Host, User from user;
update user set authentication_string='' where user='root';
update user set host='%' where user='root';
flush privileges;
alter user 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
flush privileges;
exitru
如需重新初始化,新建重新初始化数据库.bat,内容为
@ECHO ON
@echo 重新初始化
@SET sqlpath=%~dp0
net stop mysql
mysqld --remove
rmdir /s/q %sqlpath%\data
del %sqlpath%\my.ini
作者:古道轻风