从命令提示符处使用批处理文件运行sql脚本

时间:2015-05-26 11:28:44

标签: mysql sql batch-file cmd

D:
cd Tools/MySQL5/bin
mysql -u root mysql
use xyz;
source C:/Users/abc/Desktop/xyz.sql;
\q

当我在命令提示符下运行上面的行时,它工作正常,但当我将其保存为批处理文件并运行该文件时,它连接到mysql但不执行sql脚本。

4 个答案:

答案 0 :(得分:0)

这应该有效

mysql -u root xyz < C:/Users/abc/Desktop/xyz.sql;

它从您的文件中获取SQL命令

答案 1 :(得分:0)

现在我看到的错误是,在你的提示中逐个执行上述命令,一旦你运行mysql -u root mysql,你就进入了mysql控制台。因此,您的source命令可以在那里工作,但是在您的批处理中不起作用,因为您在运行批处理文件时不在mysql控制台中。

解决方案: 你可以做的是,而不是在mysql中使用source,你可以使用

mysql dbname < filename

在您的批处理文件中代替

mysql -u root mysql
use xyz;
source C:/Users/abc/Desktop/xyz.sql;
如果需要,

This link可以进一步为您提供帮助

答案 2 :(得分:0)

你可以写这样的东西

mysql -u dbUsername yourDatabase -e "SELECT * FROM table;"

或者要运行重复任务,请创建一个runtasks.bat文件,保存在项目的根目录下,然后在内部编写cmd任务

mysql -u dbUser -e "DROP DATABASE IF EXISTS testDatabase;"
mysql -u dbUser -e "CREATE DATABASE testDatabase;"

php index.php migration latest #runs your migration files

cd application\tests
phpunit

答案 3 :(得分:0)

这可以。

mysql.exe -u user_name -p -h _host_ _schema_ -e "select 1 from dual;"

这还将使您在同一命令终端上输出