我试图从命令行运行一些mysql脚本。一个是自动生成的,它不会事先选择数据库。现在,我有两个脚本:mysql脚本没有选择数据库
mysql -u <user> -p<password> < script1.sql
mysql -u <user> -p<password> < script2.sql
SCRIPT1的最后一行是USE mydatabase;
但是当我运行SCRIPT2它说,没有选择的数据库。有没有办法指定用于script2的数据库?
我试图从命令行运行一些mysql脚本。一个是自动生成的,它不会事先选择数据库。现在,我有两个脚本:mysql脚本没有选择数据库
mysql -u <user> -p<password> < script1.sql
mysql -u <user> -p<password> < script2.sql
SCRIPT1的最后一行是USE mydatabase;
但是当我运行SCRIPT2它说,没有选择的数据库。有没有办法指定用于script2的数据库?
的鲜为人知的功能添加参数-D这样
mysql -u<username> -p<password -D<database> < script.sql
mysql -u <user> -p<password> my_database_name < script2.sql
在你的情况发生,因为这些是2个独立的过程,并从第一不从第二的那些连接的查询。
另一种解决方案是把USE database_name
作为一线的script2.sql
该解决方案通过@Desislav会工作(其他的解决办法是在script2.sql
顶部添加“use database
”命令),但澄清你的问题
script1的最后一行是USE mydatabase; 这对script2
没有帮助,因为script2
会在不同的进程中执行,所以必须重新指定数据库。
在*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>