MySQLソースコマンドを使用してSQLファイルを実行するときにコンソール出力を無効にする


8

まず、MySQLコマンドラインツールを起動します。

mysql --user=myusername --password=mypassword --silent --force -b

最後の-bオプションは、エラー時のビープ音を無効にするために使用されます。

次に、データベースを選択します。

use Mydatabasename;

次に、次のようなファイルからSQLを実行します。

source c:\x\y\z\myfile.sql

それは物事がゆっくり行くときです。以前にファイルの一部を実行したことがあるので、コンソールは重複した行エラーでいっぱいになり、実行が著しく遅くなります。1秒あたり5〜10のステートメントが実行されます。重複する行がない場合、コードは5秒ごとに数万のステートメント(30k +)を実行します。

ファイルが大きく、一度に実行できないため、これを行う必要があります。

回答:


10

ここに問題があります。OSには物事を印刷する2つのモードがあります

  • stdout
  • stderr

--silent のみ標準出力に影響を与えます。stderrをどのように釘付けにしますか?

次のいずれかを試して、機能するかどうかを確認します。

mysql --user=myusername --password=mypassword --silent --force -b 2> nul
mysql --user=myusername --password=mypassword --silent --force -b --tee=nul

試してみる !!!

警告:mysqldumpに関する質問に答える前に、これに対処しました:mysqldumpからの詳細出力をログに記録する方法は?


「2> nul」は、2番目の出力ストリーム(stderr)を何にもリダイレクトしないことを意味しますか?私は自分の大きなスクリプトを実行しただけで、それでもまだ重複が発生していると思います(silentを2> nulだけで使用していません)。ソースファイルを分割する必要があると思います。
Mzn

1
はい、出力NULはまったく何も書き込みません。必要に2>stderr.txt応じて行うことができます。
RolandoMySQLDBA 2012年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.