使用的Mysql版本:

mysql-5.7.18-win32 免安装版

计算机环境

win7

项目需求

实现一个自动化MySQL配置安装及初始化数据库(初始化包括:设置用户名和密码,导入初始数据库)。

批处理

用来对某对象进行批量处理,即通过批处理可以让相应的软件执行自动化操作。

Mysql免安装版使用步骤

1.配置环境变量
2.创建Mysql配置文件
3.注册Mysql服务
4.启动Mysql服务
5.设置Mysql数据库用户名密码为指定账户密码
6.导入数据库

创建一个.bat文件复制下边的代码执行,更改相应的需求即可
配置环境变量
//set PATH=%PATH%;%MYSQL_HOME%;
//set RegV=HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
//reg add "%RegV%" /v "MYSQL_HOME" /d %MYSQL_HOME%
//reg add "%RegV%" /v "Path" /t REG_EXPAND_SZ /d "%PATH%" /f
setx -m MYSQL_HOME "D:\MySql\mysql-5.7.18-win32"
setx -m Path "%Path%;%%MYSQL_HOME%%\bin;"
创建Mysql配置文件
sql]>%mysql%\my.ini
echo default-character-set=utf8>>%mysql%\my.ini
echo [mysqld]>>%mysql%\my.ini
echo port=3306>>%mysql%\my.ini
echo basedir=%mysql:\=\\%>>%mysql%\my.ini
echo datadir=%mysql:\=\\%\\data>>%mysql%\my.ini
echo max_connections=200>>%mysql%\my.ini
echo character-set-server=utf8>>%mysql%\my.ini
echo default-storage-engine=INNODB>>%mysql%\my.ini
注册Mysql服务
mysqld --initialize-insecure --user=mysql
mysqld -install  MySQL
启动Mysql服务
@echo off
net start mysql && goto :success || goto :fail
exit
:success
echo success
.导入编辑好的.sql文件
mysql -uroot --skip-password -P3306 < %mysql%\sle.sql
pause>nul
exit
:fail
echo failed
pause>nul
exit 
end
写脚本过程中遇到的问题:

1.官方安装步骤安装的MySQL数据库初始化密码为随机密码,需要打开安装目录的文件查找密码;

2.MySQL的登录存在交互,需要人工输入密码;

3.登录MySQL会跳转到MySQL中,批处理指令不能跟随跳转到MySQL,如何实现数据库的导入和修改密码为用户的指定密码操作。
解决方法:

1、2. 浏览文档,可以通过mysqld --initialize-insecure --user=mysql生成空密码,账号为默认账号root,再通过–skip略过密码输入的指令,即可登入MySQL。

3.在.sql中添加需要在MySQL中做的操作,通过批处理 < 操作在登陆时直接将.sql导入到mysql,避免批处理指令无法正确的在MySQL中实现。

解释:在使用MySQL的过程中,导出数据库时生成的.sql文件里面都是由一句一句SQL指令组成的,而导入数据库时则是将.sql文件中的指令全部执行一遍,所以根据这个原理,对.sql进行编写,即可实现初始化数据库的功能。

用户要求导入默认数据库,设置数据库为指定密码,所以在编辑后的.sql文件如下。

批处理bat mysql 查看库 mysql数据批处理_sql

注:

使用如下新的指令来设置密码:
ALTER USER ‘root’@’%’ IDENTIFIED WITH mysql_native_password BY ‘password’;

附录:

::0.复制文件到本地磁盘
md D:\MySql
xcopy G:\FSMetrol_Soft_instal\MySql\*.* D:\MySql /s
::1.配置环境变量
setx -m MYSQL_HOME "D:\MySql\mysql-5.7.18-win32"
setx -m Path "%Path%;%%MYSQL_HOME%%\bin;"
::2.创建配置文件
set mysql=D:\MySql\mysql-5.7.18-win32
echo [mysql]>%mysql%\my.ini
echo default-character-set=utf8>>%mysql%\my.ini
echo [mysqld]>>%mysql%\my.ini
echo port=3306>>%mysql%\my.ini
echo basedir=%mysql:\=\\%>>%mysql%\my.ini
echo datadir=%mysql:\=\\%\\data>>%mysql%\my.ini
echo max_connections=200>>%mysql%\my.ini
echo character-set-server=utf8>>%mysql%\my.ini
echo default-storage-engine=INNODB>>%mysql%\my.ini
::注册MySQL服务
mysqld --initialize-insecure --user=mysql
::xcopy G:\FSMetrol_Soft_instal\MySql\mysql-5.7.18-win32\my.ini D:\MySql\mysql-
5.7.18-win32 
mysqld -install  MySQL
::4.启动MySQL服务
@echo off
net start mysql && goto :success || goto :fail
exit
:success
echo success
::5.导入sql文件初始化数据库
mysql -uroot --skip-password -P3306 < %mysql%\sle.sql
pause>nul
exit
:fail
echo failed
pause>nul
exit
end