在 mysql 命令行程序中修复 Control-C?

Ama*_*rus 10 mysql postgresql keyboard keyboard-shortcuts

mysql命令行中,按Control-C将取消程序,并使您返回到 bash。在psql, postgres 中,它将终止当前查询并且不会停止 psql 程序。有没有办法Control-C在 mysql 程序中获得 psql 风格的行为?我一直发现自己Control-C被习惯逼迫,不得不重新登录 mysql。

Control C不会杀死 bash,并在您按下它时将您注销。我认为这是一件好事。Control-C意思是“停止你正在做的事情”。

Dan*_*ley 13

就像安迪说的,它在以后的版本中得到了修复。

旧版本中没有等效的键盘快捷键。

但是您可以使用以下 CLI 标志来防止它发生:

--sigint-ignore

Ignore SIGINT signals (typically the result of typing Control-C).
Run Code Online (Sandbox Code Playgroud)


And*_*ndy 7

如果在 5.1 中在查询执行期间按 Ctrl-C,它将停止执行并显示消息“查询执行被中断”

    mysql> INSERT INTO c SELECT rand()*1000, sha1(rand()) FROM c;
    查询被 Ctrl+C 中止
    ERROR 1317 (70100): 查询执行被中断

进一步Ctrl-C按下会杀死客户端。

正如所提到的,旧版本会死得很惨,所以如果可能的话升级:)

编辑:

看起来它是在 5.0.25(和 5.1.10)中添加的。

  • 它仍然有非常愚蠢的行为。当您在查询过程中按 CTRL+C 时,它应该取消查询。当您在提示符下按 CTRL+C 时,它应该什么都不做并且不会退出 MySQL。当您在 Bash 提示符下按 CTRL+C 时什么也没发生,它确实会打印一个新行,但基本上什么都不做。 (2认同)

小智 5

如果您在行的末尾添加一个 \c 而不是使用 Ctrl-c,那么您可以在不退出 mysql 的情况下终止该行。