通过批处理脚本运行mysql脚本

问题描述:

我已经搜索了几个小时,有很多帖子或教程,但我无法运行我的批处理脚本。通过批处理脚本运行mysql脚本

在DOS提示符下此代码工作正常:

-u root -h localhost -p******** siir_07 dumper.sql 

但是这给错误与批处理:

"c:\program files\mysql\mysql server 5.5\bin\mysql.exe" "-u root -h localhost -p******** siir_07 dumper.sql" 

的错误是:

ERROR 1045(28000):访问拒绝用户'root -h localhost -p * * siir_07 dumper.s'@'localhost”(使用密码:NO)

Z:\ test.bat的:

Z:\webserver\mysql\bin\mysql.exe -u test -p test < test.sql 

当我从命令行中运行它,一切没问题。因此,请尝试使用<删除引号和重定向输入。

+0

感谢您的回答。它现在效果很好 – nikel 2012-01-12 08:03:24

它认为这是你的用户名

' root -h localhost -p** siir_07 dumper.s' 

试图改变周围的报价在你的批处理脚本

+0

感谢您的回复。它只输出mysql帮助文本。在我进行反复试验时,我曾看到过这一点。 – nikel 2012-01-12 06:52:43

你应该使用<文件重定向输入,删除多余的空格:

mysql -uroot -p*** < dumper.sql 

我也建议把用户名密码,以及最probabry字符集参数在一个单独的INI文件,并使用它,如下所示:

mysql --defaults-extra-file=myconf.ini < dumper.sql 
+0

感谢您的回复。我通过删除最后两个引号来修复它。 – nikel 2012-01-12 08:02:43

您也可以使用源代码来执行sql脚本 例如

mysql -u%DBUSERNAME% -p%USERPASSWD% -D%DBNAME% -e "source something.sql;" 

该解决方案为我工作:

mysql -u my_username -D my_database -p < test.sql 

这之后,我得到了一个提示输入我的密码,我没有和一切正常。