如果着急:请直接看本文标红部分和最后总结!
这是我的mysql路径:
下面是我的bat命令(x一句,刚接触博客,手残)
注意:此命令存在bat脚本中
C:\JiaFa\Setup\MySQL Server 5.5\bin\mysql.exe -h localhost -uroot -pjfkjyfb dajian < e:\c_bw_list.sql>>e:\dblog.txt 2>&1给大家解释一下这句命令:
C:\JiaFa\Setup\MySQL Server 5.5\bin\mysql.exe这是我执行mysql命令的路径(即mysql安装目录下bin下的mysql.exe)
-h是ip地址
-u用户名,-p密码
后面的“dajian”是数据库名,
< e:\***.sql是sql文件的路径
>>e:\dblog.txt 2>&1这句是我在网上找的,一个论坛的大大写的,大大id忘了- -这句作用是将导入sql文件的日志输出到指定位置的txt里,我测试的结果就是,成功了没日志,失败了才有。
说这么多,直接说结果:
上面那句是错的233333~~
在e:\dblog.txt中看到
“'C:\JiaFa\Setup\MySQL' 不是内部或外部命令,也不是可运行的程序
或批处理文件。”(这个其实就给了提示,我太笨了)然后换了种方式,先进入bin目录,再执行命令
再看日志,依然报错:
'mysql.exe' 不是内部或外部命令,也不是可运行的程序
或批处理文件。然后就百度查了查,大多数说是要指定环境变量,那就就试试吧
(下面的语句中sql文件路径有变动,怕小白看蒙了,大家不要在意,
再强调下:f:\zzztest\c_bw_list.sql是你的sql文件的路径
f:\zzztest\dblog.txt是 你放日志的路径)
没卵用。
这里插一句:希望大家能注意到,同一个脚本,如果上面设置了环境变量,下面直接引用,是没用的。(或者说,刚设置了环境变量,就想在同一个bat里使用是无效的)
必须重新双击打开一个命令窗口才有效,即使是调用另一个bat文件也不行。
再换种说话:还是上面的这个bat脚本例子,如果把第三行放到另外一个sql.bat脚本里,先双击setx Path这个脚本,再双击sql.bat脚本,这样是可行的。但是你要是在setx Path这个脚本中使用start命令或者call调用sql.bat脚本,是不可行的。
(这是我这几天尝试的结果,也许是错误的结论,知道的大神请留言告我更改)
【中括号内容于2017-8-16 14:12:52更新:关于同一个配置环境变量后立即使用的方法详见这篇博文:http://blog.csdn.net/womenrendeme/article/details/77247255】
然后,又尝试了下,设置环境变量后重启mysql
setx Path "C:\JiaFa\Setup\MySQL Server 5.5\bin;%Path%"
net stop mysqlnet start mysql
mysql -h localhost -uroot -pjfkjyfb dajian < f:\zzztest\c_bw_list.sql>>f:\zzztest\dblog.txt 2>&1还是不行,索性礼拜六再改
然而就在昨晚半夜醒来尿尿,昏昏沉沉的想到,是不是路径有问题?
今天周六,虽然休息还是来了公司
一坐下我就啪啪啪...
*************WARNING************
ctrl+c保存,双击前先把那个dblog日志删掉
双击,发现bat窗口不像之前那样闪退了,而是停顿了一下
去看下数据库吧
bingo~~数据导入成功!
总结:
就是因为C:\JiaFa\Setup\MySQL Server 5.5\bin\mysql.exe路径中含有空格,如果这个脚本只是调用一次使用,不需要配置环境变量,直接指定路径就好,但是mysql的安装路径中自带有空格。还可以修改mysql的安装文件夹MySQL Server 5.5为mysql。这只是我在我这里的问题,可能解决不了你的问题,但是注意多看日志or报错提示。百度错误也解决不了你的问题,就需要自己去解决了。
而我成功的多次避开了正确的路,文章只是简单说了下失败的几次,其实我尝试了不下50次,包括设置环境变量后,调用另一个bat的方法。(这个我现在也没搞明白).
以下代码可直接copy,更改为自己的路径。
::set str 是将含有空格的mysql路径放在str里
set str="C:\JiaFa\Setup\MySQL Server 5.5\bin\"
::%%两个百分号是引用上面的变量
%str%mysql.exe -h localhost -uroot -pjfkjyfb dajian < f:\zzztest\c_bw_list.sql>>f:\zzztest\dblog.txt 2>&1
::pause是暂停,可以看执行过程,成功了就pause删掉吧
pause
bat脚本执行mysql命令导入sql文件到数据库
最新推荐文章于 2024-07-22 13:31:01 发布