批量运行Mysql脚本?

时间:2009-10-02 17:57:26

标签: sql mysql

有人可以将我链接到教程或解释是否有办法创建某种mysql脚本/存储过程的批处理文件并同时运行它们?我似乎无法在网上找到这方面的任何文件,但我觉得我可能会使用错误的条款进行搜索。

3 个答案:

答案 0 :(得分:6)

您可以简单地创建一个文本文件,其中SQL语句用;然后使用MySQL命令行客户端执行所有语句:

# my_textfile.sql
# ---------------
USE my_database;
SELECT * FROM table1;
UPDATE table2 SET foo='bar';

Command Line:
mysql < my_textfile.sql

答案 1 :(得分:4)

您可以使用source命令(details of command line options)在脚本中调用mysql脚本来链接mysql脚本

# my_textfile.sql
# ---------------
USE my_database;
\. subscript1.sql
\. subdir/subscript2.sql
\. /full/path/to/subscript3.sql

Command Line:
mysql < my_textfile.sql

如果您要编写可能需要密码/用户帐户的文件脚本,请不要忘记命令行选项。

mysql -uyouraccount -pyourpassword YourDatabase < mytextfile.sql

这不是最安全的方法,因为它将您的用户名/密码放在命令行上,但它有效。如果您正在编写大量脚本,我建议您查看.my.cnf以及用于保存帐户/密码的各种选项(以及保护该文件)。

答案 2 :(得分:0)

对于在OS X Yosemite上运行MAMP PRO的窥视,我能够通过从终端运行来获取所有* .sql脚本(导入):

/Applications/MAMP/Library/bin/mysql -h localhost -u root -p < /Applications/MAMP/myDBRestore.sql

myDBRestore.sql包含对所有MySQL DB脚本的引用,如下所示:

\. /full/path/to/sql/file1.sql
\. /full/path/to/sql/file2.sql
\. /full/path/to/sql/file3.sql
...
\. /full/path/to/sql/file(n).sql

其中n是目录中的最后一个.sql文件。