项目需要使用bat批处理文件自动导入sql文件,对用户更友好,网上找了很多,有些能使有些不能使,借鉴了一些,主要是借鉴了下面博客
代码
set str="C:\Program Files\MySQL\MySQL Server 8.0\bin\"
mysql -h localhost -uroot -proot -e "create database if not exists merdm default charset utf8 collate utf8_general_ci">nul 2>nul
echo finish to create database >> d:\acousticData\dblog.txt 2>&1
mysql -h localhost -uroot -proot merdm < d:\acousticData\merdm.sql>> d:\acousticData\dblog.txt 2>&1
pause
介绍
str:数据库bin文件夹路径,
if no exists merdm,merdm是我的数据库名称,可以按照自己数据库名称建立,
d:\acousticData\dblog.txt,是我运行的日志,如果有错误会记录,否则不会记录
uroot,proot是u用户名,p用户名
后面的merdm是我的数据库名称,d:\acousticData\merdm.sql是存放sql文件的路径,
d:\acousticData\dblog.txt还是日志存放路径
pause,是暂停,让咱们能看清cmd运行命令,看看具体往cmd输入了什么,不需要可以删掉
总体来说第一行是建立数据库,第二行是往数据库里面导入sql文件,每一个都可以单独拿出来
所以如果拿来使用,需要更改的地方有这么几处
str要更改(至于我没用到后面再说),所有merdm不带.sql的改成自己数据库的名称,所有带merdm.sql的改成自己的路径,所有dblog.txt的改成自己的日志路径,这个日志可以自动创建
所以不需要创建文件,至于上级目录需不需要建这没有实践过
下面讲讲为什么str我没有用到,我的mysql配置了环境变量,然后我使用bin目录下的mysql.exe总是有问题,
set str="C:\Program Files\MySQL\MySQL Server 8.0\bin\"
%str%mysql.exe-h localhost -uroot -proot -e "create database if not exists merdm default charset utf8 collate utf8_general_ci">nul 2>nul
echo finish to create database >> d:\acousticData\dblog.txt 2>&1
mysql -h localhost -uroot -proot merdm < d:\acousticData\merdm.sql>> d:\acousticData\dblog.txt 2>&1
paus
原本应该是这样的,使用bin下面的exe运行,但是我电脑有点问题,具体我也不清楚,反正如果配置了环境变量,按上面第一个的应该就可以了,如果不行可以试试第二个
运行成功截图
常见错误
cmd里面路径有乱码:这是因为路径存在中文,或者路径中的空格是中文,或者空格多了或者少了,自己可以切换到英文试验一下
mysql无法访问或者其他mysql的问题,可以试试配置环境变量,用mysql来执行命令(就是用第一个代码块),如果不行,就用bin目录下面的mysql.exe执行(就是第二个代码块)