Как выйти из командной строки MySQL?
Я установил MySQL. Теперь я застрял в командной строке MySQL. Я запускал MySQL вот так:
C:\>mysql.exe
mysql>
Затем я ввожу какую-то неверную команду, например:
mysql> /version
->
И независимо от того, что я печатаю, я не могу выйти из командной строки / терминала MySQL. Например:
exit
CtrlC
CtrlD
quit
Ctrl\
CtrlZ
bye
Как выйти из терминала MySQL в терминал по умолчанию?
6 ответов
Чтобы добавить другой ответ, вы можете просто завершить текущий неверный запрос, используя точку с запятой:
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>
Конечно, оба варианта предполагают, что у вас нет вступительной цитаты. Если вы это сделаете, вы должны сначала закрыть его конечной цитатой.
Почему ctrl-c не выходит из режима ввода mysql в Windows?
Потому что вы сказали MySQL интерпретировать ваши команды выхода как допустимый ввод.
Что делает терминал MySQL трудным для понимания, так это то, что существуют разные режимы для одинарных, двойных и нормальных режимов.
Таким образом, чтобы выйти из режима ввода mysql, вам нужно будет выполнить следующие шаги:
- Выйти из режима двойных кавычек.
- Выйдите из режима одинарных кавычек.
- Выйти из режима MySQL.
- Выйдите из mysql обратно в терминал по умолчанию.
Самый простой пример:
mysql> /version
->
->
->
-> \c
mysql> exit
Bye
C:\>
В приведенном выше примере вы никогда не выходили из режима по умолчанию, поэтому команды выхода работают правильно.
Пример 2 (это то, что вас сбивает с толку).
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:\>
Пока вы находитесь в режиме одинарных или двойных кавычек, escape-последовательности не соблюдаются. Даже Ctrl-C и Ctrl-D игнорируются в этих режимах.
В какой из 26 вселенных Ctrl-C не останавливает программу независимо от режима? Возможно, мы никогда не узнаем. Bazinga.
'\q' делает всю работу за меня. Использование Ubuntu Terminal.
SQL поддерживает запросы, введенные в несколько строк. Только при вводе точки с запятой ;
будет ли выполнен запрос Вы также должны прекратить любые строки в вашем запросе.
Следите за тем, чтобы копировать и вставлять запросы со строками из пакета обработки текста - кавычки могли быть заменены "умными кавычками", и это испортит ваш запрос.
Если вы ввели незавершенный запрос, он не запускается, и поэтому ввод не работает - MySQL считает, что вы все еще находитесь в середине запроса. Изменения в командной строке показывают, какие данные необходимы для завершения запроса. Например, может потребоваться цитата или двойная цитата. Это мощное средство, и командная строка полезна, но я находил это непонятным, пока не прочитал ответы и комментарии в этой теме.
Приглашение "верхнего уровня":
MySQL>
Если вы видите это, то вы можете ввести команду и завершить ее; и нажмите ввод.
Если вы видите приглашение, подобное этому:
'>
">
->
Затем MySQL ждет, когда вы завершите строку с кавычкой или запрос с точкой с запятой.
Вот как сказать MySQL отменить запутанный неопределенный запрос и вернуть вас в главное приглашение:
\c
Я думаю, что это безопаснее, чем завершать и запускать непреднамеренный запрос. После этого вы должны вернуться к приглашению> и можете выйти с помощью:
exit
Хорошо, это работает для меня в Ubuntu 16.04, просто введите exit;
(с точкой с запятой):
mysql> exit;