Как выйти из командной строки MySQL?

130822
Eric Leschinski

Я установил MySQL. Теперь я застрял в командной строке MySQL. Я запускал MySQL вот так:

C:\>mysql.exe mysql> 

Затем я ввожу какую-то неверную команду, например:

mysql> /version -> 

И независимо от того, что я печатаю, я не могу выйти из командной строки / терминала MySQL. Например:

  • exit

  • CtrlC

  • CtrlD

  • quit

  • Ctrl\

  • CtrlZ

  • bye

Как выйти из терминала MySQL в терминал по умолчанию?

28
Вы пытались выключить компьютер? / s VarunAgw 6 лет назад 0

4 ответа на вопрос

22
Pacerier

Чтобы добавить другой ответ, вы можете просто завершить текущий неверный запрос, используя точку с запятой:

mysql> /version -> ; ERROR 1064 (42000): You have an error in your SQL syntax......... mysql> exit Bye  c:\mysql\bin> 

Или используя \G(что должно заставить строки отображаться вертикально):

mysql> /version -> ; ERROR 1064 (42000): You have an error in your SQL syntax......... mysql> exit Bye  c:\mysql\bin> 

Конечно, оба варианта предполагают, что у вас нет вступительной цитаты. Если вы это сделаете, вы должны сначала закрыть его конечной цитатой.

Что меня сбило с толку, так это то, что я не до конца понимал, как терминал mysql обрабатывает ввод в различных режимах цитирования, как это определено здесь: https://dev.mysql.com/doc/refman/5.0/en/entering-queries.html. Есть 5 режимов: `->`, `'>`, `"> `,` \ `>` и `/ *>` Я снова протестировал его на последних версиях, и он работал правильно. исправлена ​​ошибка. Eric Leschinski 9 лет назад 0
Точка с запятой не работает ... ничего не работает. Если я делаю \ G, он действует так, как будто он вышел из этого глупого режима ->, но затем возвращается в него после другой команды. Почему mysql так глуп по этому поводу? Amalgovinus 7 лет назад 0
Реальный ответ: mysql cli в Windows испорчен и может застрять. Самый простой способ для Windows - просто использовать git bash. Amalgovinus 6 лет назад 0
18
Eric Leschinski

Why does ctrl-c not exit mysql input mode in Windows?

Because you have told MySQL to interpret your exit commands as valid input.

What makes the MySQL terminal hard to understand is there there are different modes for single quote, double quote, and normal mode.

So to get out of mysql input mode, you will have to do these steps:

  1. Get out of double quote mode.
  2. Get out of single quote mode.
  3. Get out of mysql mode.
  4. Exit mysql back to the default terminal.

Most basic example:

mysql> /version -> -> -> -> \c mysql> exit Bye C:\> 

You never left default mode in the above example so exit commands work correctly.

Example 2 (this is what is tripping you up).

mysql> hello -> -> look dash is on the left" "> In doublequote mode now, because doublequote above "> adding another doublequote breaks you out: " -> look a single quote ' here '> in single quote mode now. '> get out, in, then out again with three singlequotes: ''' -> now it will listen to your escape code: \c mysql> exit Bye C:\> 

While you are in single quote mode or double quote mode, no escape sequences are respected. Even Ctrl-C and Ctrl-D are ignored in these modes.

In which one of the 26 universes does Ctrl-C not stop a program regardless of mode? We may never know. Bazinga.

Я предполагаю, что кавычки избегают вещей, и это ждет большего ввода. Это действительно имеет смысл, когда вы можете хранить что-то вроде «выхода» внутри базы данных Journeyman Geek 11 лет назад 1
@Eric, хотя Ctrl-D не работает, когда вы находитесь в режиме цитаты, Ctrl-C ** все еще работает **, если вы используете более старые ** клиенты **, такие как mysql 5.5.43 и mysql 5.1.73. Проверено на win 8.1. Pacerier 9 лет назад 0
Ctrl-c все еще не оставляет это для меня. Я никогда не получаю "пока" сообщение. Кроме того, когда я вхожу в режим ->, единственное, что я могу сделать, это Ctrl + C, чтобы выйти? Абсолютно ничто не получает ответ от переводчика. Mysql интуитивно понятен в большинстве случаев, но это не один из таких случаев. Amalgovinus 7 лет назад 0
Возможно, ваш эмулятор терминала поглощает ваши Ctrl-коды и отправляет другой код ключа процессу, который он интерпретирует как текст. Я чувствую вашу боль. Когда я писал этот пост еще в 2013 году, именно для этой проблемы и для миллионов других людей, подобных моей бывшей машине с Windows, была взломана и выброшена в мусорное ведро за загрязнение моего ПК, она где-то находится на свалке , Единственный способ исправить это - избавиться от операционной системы Windows и перейти на идеологии Mac и Linux, которые не совершают этих преступлений, вставляя посредников для предотвращения работы вашего Ctrl-C. Eric Leschinski 6 лет назад 0
1
Akshay Chawda

Вы можете попытаться сбежать с помощью Ctrl+ Shift+D

Это артефакт конкретного используемого вами эмулятора терминала, поэтому было бы полезно узнать, какой из них ваш. Ваш, очевидно, переназначил Ctrl-Shift-D в код клавиши, который процесс mysql интерпретирует как выход. Если это так, вы должны иметь возможность переназначить коды клавиш в эмуляторе терминала, чтобы вам не нужно было получать запястный канал для выхода из программы. Eric Leschinski 6 лет назад 1
0
evilReiko

Хорошо, это работало для меня в Ubuntu 16.04, просто введите exit;(с точкой с запятой):

mysql> exit;