在mysql
命令行中,按下Control-C将取消程序,并带您回到 bash。在psql
postgres 中,它会终止当前查询并且不会停止 psql 程序。有没有办法Control-C在 mysql 程序中获得 psql 样式的行为?我一直发现自己Control-C习惯性地紧迫,不得不重新登录 mysql。
Control C不会杀死bash,并在您按下它时将您注销。我认为这是一件好事。Control-C意思是“停止你正在做的事情”。
在mysql
命令行中,按下Control-C将取消程序,并带您回到 bash。在psql
postgres 中,它会终止当前查询并且不会停止 psql 程序。有没有办法Control-C在 mysql 程序中获得 psql 样式的行为?我一直发现自己Control-C习惯性地紧迫,不得不重新登录 mysql。
Control C不会杀死bash,并在您按下它时将您注销。我认为这是一件好事。Control-C意思是“停止你正在做的事情”。
正如安迪所说,它在以后的版本中得到了修复。
旧版本中没有等效的键盘快捷键。
但是您可以使用以下 CLI 标志来防止它发生:
如果在查询执行期间在 5.1 中按 Ctrl-C,它将停止执行并显示消息“查询执行已中断”
进一步Ctrl-C的压力杀死了客户。
如问题所述,旧版本死得很惨,因此请尽可能升级:)
编辑:
看起来它是在 5.0.25(和 5.1.10)中添加的。
如果您在行尾添加 \c 而不是使用 Ctrl-c,那么您可以在不退出 mysql 的情况下终止该行。
简短的回答:截至 2014 年初,没有办法在 mysql 中有描述的行为。请参阅相关的错误报告和 dba.stackexchange 中的一个页面,其中 3 个不同的人评论它在 v5.5 中仍未修复。另外据我所知,经过长时间的谷歌搜索,没有值得使用的解决方法(请参阅下面为什么 --sigint-ignore 不好)。安迪的回答被编辑提到“看起来它是在 5.0.25(和 5.1.10)中添加的。” 但他可能被上述错误报告中日期为 [2006 年 5 月 3 日 19:04] 的评论误导了。
--sigint-ignore 参数(请参阅 Dan Carley 的回答)确实会阻止 mysql 在您按 ctrl-C 时将您放回 shell,但也会删除停止长时间运行的查询的能力。
这是让你离开的那种可用性错误 :-( 确实很明显,可能非常容易修复,但多年后它仍然存在。