mysql脚本没有选择数据库

时间:2012-10-12 05:02:13

标签: mysql command-line

我正在尝试从命令行运行一些mysql脚本。一个是自动生成的,它不会事先选择数据库。现在我有两个脚本:

mysql -u <user> -p<password> < script1.sql
mysql -u <user> -p<password> < script2.sql

script1的最后一行是USE mydatabase;,但是当我运行script2时,它表示没有选择数据库。有没有办法指定用于script2的数据库?

4 个答案:

答案 0 :(得分:17)

添加参数-D,如此

mysql -u<username> -p<password -D<database> < script.sql

答案 1 :(得分:5)

mysql -u <user> -p<password> my_database_name < script2.sql

在你的情况下,因为这是两个独立的过程,而第一个的查询与第二个的查询没有连接。

另一个解决方案是将USE database_name作为script2.sql

中的第一行

答案 2 :(得分:1)

@Desislav的解决方案可行(其他解决方案是在use database之上添加“script2.sql”命令),但要澄清您的问题

script1的最后一行是USE mydatabase; 这对script2无济于事,因为script2将在不同的进程中执行,您必须再次指定数据库。

答案 3 :(得分:0)

*nix(Unix,Linux等)下,您可以使用cat命令组合这两个脚本。

cat script1.sql script2.sql | mysql -u <user> -p<password>

在DOS / Windows下,您可以使用copy命令的一个鲜为人知的功能

copy script1.sql+script2.sql | mysql -u <user> -p<password>