в mysql
командная строка, нажатие Ctrl-C отменит программу и вернет вас в bash. В psql
, для postgres, он убьет текущий запрос и не остановит программу psql. Есть ли способ получить поведение стиля psql для Ctrl-C в программе mysql? Я продолжаю нажимать Ctrl-C по привычке и необходимости снова войти в mysql.
Контроль C не убивает bash и при нажатии на него выходит из системы. Я считаю, что это хорошо. Ctrl-C означает «прекратите то, что вы делаете».
Как говорит Энди, это исправлено в более поздних версиях.
В более старых версиях нет эквивалентного сочетания клавиш.
Но вы можете предотвратить это с помощью следующего флага CLI:
--sigint-ignore
Ignore SIGINT signals (typically the result of typing Control-C).
если ты нажмите Ctrl-C в 5.1 во время выполнения запроса, он остановит выполнение с сообщением «Выполнение запроса было прервано»
mysql> INSERT INTO c SELECT rand()*1000, sha1(rand()) FROM c; Query aborted BY Ctrl+C ERROR 1317 (70100): Query execution was interrupted
Дальше Ctrl-C пресс убивает клиента.
Старые версии умирают ужасно, как указано в вопросе, поэтому Обновить если возможно :)
Редактировать:
Если вы добавите \ c в конец вашей строки вместо использования Ctrl-c, вы можете убить строку, не выходя из mysql.
Краткий ответ: по состоянию на начало 2014 года в mysql нет возможности иметь описанное поведение. Видеть соответствующий отчет об ошибке и страница в dba.stackexchange, где 3 разных человека комментарий, что это все еще не исправлено в v5.5. Кроме того, насколько я могу судить, после долгого поиска в Google нет обходного пути, который стоит использовать (см. Ниже, почему --sigint-ignore не подходит). Ответ Энди был отредактирован: «Похоже, он был добавлен в 5.0.25 (и 5.1.10)». но, вероятно, он был введен в заблуждение комментарием с датой [3 мая 2006 19:04] в вышеупомянутом отчете об ошибке.
Аргумент --sigint-ignore (см. Ответ Дэна Карли) действительно помешает mysql отбросить вас обратно в оболочку, когда вы нажмете ctrl-C, но также убрать возможность останавливать длительные запросы.
Это тот вид ошибок юзабилити, который заставляет вас пойти :-( Действительно очевидны и, вероятно, чрезвычайно легко исправить, но все же здесь, спустя много лет.