Ada*_*tan 28 mysql interface mysql-console
MySQL 控制台中有一些东西让我抓狂。当我点击ctrl+c取消当前正在输入的命令时,终端退出。
在每一个终端我知道(*nix码头,Python,PostgreSQL),ctrl+c取消当前命令和ctrl+d离开终端。
此问题已在 2003 年报告,此后多次出现。
有没有办法:
aku*_*utz 27
至少 5.6.14 版的客户端有--signint-ignore选项可以完全忽略 SIGINT 处理程序。它似乎是在 2004 年 10 月 7 日添加的——所以至少已经有一段时间了。我刚刚测试了它,它确实阻止了 CTRL-C 取消 MySQL 客户端。但是,如果 CTRL-C 也能像在 BASH shell 上那样取消当前的命令行缓冲区,那就太好了——就像 PostgreSQL CLI 所做的那样。我已经对 MySQL 进行了分叉,以了解实现这样的事情会有多困难。当/如果准备好时,我将发布带有 tarball 链接的 Homebrew 公式。
更新 1 曾经有过这样的日子吗?我创建了承诺的补丁,然后我决定创建一个视频来演示它。有效!但是,我无法禁用它!好吧,事实证明 MySQL 实际上在去年将功能融入了核心客户端!是的,这个Q的A是至少要下载MySQL 5.7.3-794-g901d27f的客户端。它具有我们都想要的功能。
示例 在命令行中只需添加 --signt-ignore 标志:
mysql --host=127.0.0.1 --port=8900 --user=root -p --sigint-ignore DBNAME
Run Code Online (Sandbox Code Playgroud)
或者,像我一样在$HOME/.my.cnf(%USERPROFILE%/.my.cnf在 Windows 上)为您的用户帐户创建一个 MySQL 配置文件,内容如下:
[mysql]
sigint-ignore=TRUE
Run Code Online (Sandbox Code Playgroud)
这将确保所有mysql执行都忽略烦人的 Ctrl-C 并表现得像一个好的 SQL 客户端。
Der*_*ney 21
虽然ctrl+c行为很烦人,但您仍然可以使用\c取消当前查询。您只需要训练自己在使用 mysql CLI 时,使用\c而不是ctrl+ c!
要更改行为,请下载 mysql CLI 的源代码并将SIGINT处理程序修改为您认为合适的行为,然后重新编译和安装。
| 归档时间: |
|
| 查看次数: |
11336 次 |
| 最近记录: |