web-dev-qa-db-ja.com

mysqlコマンドラインプログラムのControl-Cを修正しましたか?

mysqlコマンドラインで、 Control-C プログラムをキャンセルし、bashに戻ります。 postgres用のpsqlでは、現在のクエリを強制終了し、psqlプログラムを停止しません。のpsqlスタイルの動作を取得する方法はありますか Control-C mysqlプログラムで?私は自分が押していることに気づき続けます Control-C 習慣とmysqlに再度ログインする必要があります。

Control C bashを強制終了せず、押すとログアウトします。これは良いことだと思います。 Control-C 「あなたがしていることをやめる」という意味です。

10
Rory

クエリの実行中に5.1でCtrl-Cを押す の場合、「クエリの実行が中断されました」というメッセージが表示されて実行が停止します。

 mysql> INSERT INTO c SELECT Rand()* 1000、sha1(Rand())FROM c; 
クエリはCtrl + C 
によって中止されましたエラー1317(70100):クエリの実行中断されました

さらに Ctrl-C プレスはクライアントを殺します。

問題で述べたように、古いバージョンはひどく死ぬので、 アップグレード 可能であれば:)

編集:

5.0.25(および5.1.10)で追加されたようです。

7
Andy

アンディが言うように、それは後のバージョンで修正されています。

古いバージョンには同等のキーボードショートカットはありません。

ただし、次のCLIフラグを使用して発生を防ぐことができます。

--sigint-ignore

Ignore SIGINT signals (typically the result of typing Control-C).
13
Dan Carley

Ctrl-cを使用する代わりに\ cを行の終わりに追加すると、mysqlを終了せずに行を強制終了できます。

5
user32860

簡単な答え:2014年の初めの時点で、mysqlで説明されている動作を行う方法はありません。 関連するバグレポート およびdba.stackexchangeの3人の異なるページ v5.5ではまだ修正されていないことをコメント を参照してください。また、長いグーグルの後で私が知る限り、使用する価値のある回避策はありません(以下の--sigint-ignoreが良くない理由を参照してください)。 Andyの回答は、「5.0.25(および5.1.10)で追加されたようです」と編集されました。しかし、彼はおそらく、前述のバグレポートの日付[2006年5月3日19:04]のコメントに惑わされました。

--sigint-ignore引数(Dan Carleyの回答を参照)は、ctrl-Cを押したときにmysqlがシェルに戻るのを実際に停止しますが、長時間実行されるクエリを停止する機能も削除します

これは、使いやすさのバグの一種です:-(本当に明白で、おそらく非常に簡単に修正できますが、それでもここでは何年も経っています。

3
ndemou