4

コマンドラインからいくつかのmysqlスクリプトを実行しようとしています。1つは自動生成され、事前にデータベースを選択しません。現在、2つのスクリプトがあります。

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

script1の最後の行はですUSE mydatabase;が、script2を実行すると、データベースが選択されていないと表示されます。script2に使用するデータベースを指定する方法はありますか?

4

4 に答える 4

19

このようにパラメータ -D を追加します

mysql -u<username> -p<password -D<database> < script.sql
于 2012-10-12T05:20:23.723 に答える
5
mysql -u <user> -p<password> my_database_name < script2.sql

あなたの場合、これらは2つの別個のプロセスであり、最初のクエリは2番目のクエリに接続されていないために発生します。

別の解決策はUSE database_name、script2.sqlの最初の行として配置することです

于 2012-10-12T05:03:44.997 に答える
1

@Desislavによる解決策はうまくいきます(他の解決策はuse database、の一番上に「」コマンドを追加することですscript2.sql)が、問題を明確にするために

script1 の最後の行は USE mydatabase; です。は別のプロセスで実行されるため、データベースを再度指定する必要があるためscript2、 これは役に立ちません。script2

于 2012-10-12T05:05:08.013 に答える
0

*nix(Unix、Linux など) では、コマンドを使用して 2 つのスクリプトを組み合わせることができますcat

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

copyDOS/Windows では、コマンドのあまり知られていない機能を使用できます。

copy script1.sql+script2.sql | mysql -u <user> -p<password>
于 2012-10-12T05:17:07.843 に答える