消えない - mysql ログイン



mysqlを終了せずにmysqlコマンドラインツールで長いクエリをInteruptするにはどうすればよいですか? (4)

SQLステートメントのデバッグ中に、偶然、(クエリ自体が妥当な時間に実行されたとしても)大量の結果を出力するmysqlコマンドラインを使用してクエリを実行した場合、無限ストリームの出力を停止するための唯一の方法はCTRLです-C。

残念なことに、これはシェルに戻ってきて、強制的にログインしてデータベースを再度選択します。

これを避けるために、mysqlを--sigint-ignoreオプションで起動して、CTRL-Cを無視するようにしました。

今私は長いクエリの出力を中断する方法をしたいと思います。

これを行うキーボードショートカットはありますか?

https://src-bin.com


Answer #1

--pagerを使用すると、 lessようなページャーに出力を渡すことができます--pagerは出力を制御します。 それを殺すだけでなく、ページング、検索、さらには端末ウィンドウよりも良い出力の保存まで、あなたに与えられます。

また、-- --safe-updatesまたは-Uスイッチ、別名--i-am-a-dummyあります。これは、クローズレスなupdatedeleteを防ぎます。また、自動リミットも選択可能です(select_limitで変更可能)。

これらはすべて~/.my.cnfデフォルトで設定できます。

[mysql]
pager
safe-updates

Answer #2

キーボードのショートカットではありません。

唯一の選択は、別のセッションを開き、 SHOW PROCESSLISTを使い、終了したいセッションをKILL QUERYすることです。

また、 mysqladminコマンドラインツールを使用してこれらのコマンドを発行することもできます。

どちらにしても、ログインする必要があります。 だから、Ctrl-Cを押すだけではそれほど有利ではありません。


Answer #3

mysql --sigint-ignore使用mysql --sigint-ignore

行を消去するには、 control + Uを使用します


Answer #4

遅いですが、多分私の答えは誰かを助けるでしょう。

コマンドラインから具体的なmysqlクエリを削除する方法は次のとおりです:

  1. 次のコマンドでそのクエリのプロセスIDを特定します:mysqladmin processlist
  2. Idが5736748であると仮定すると、クエリを終了するには次のように入力する必要があります:mysqladmin kill 5736748




command-line