我試圖從命令行運行一些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>