2013-08-08 21:39:05 +0000 2013-08-08 21:39:05 +0000
39
39

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

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

C:\>mysql.exe
mysql>

Тогда я ввел некоторую некорректную команду вот так:

mysql> /version
    ->

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

  • exit

  • CtrlC

  • CtrlD

  • quit

  • Ctrl\

  • CtrlZ

  • bye

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

Ответы (5)

31
31
31
2015-01-10 14:13:49 +0000

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

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>

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

20
20
20
2013-08-08 21:40:45 +0000

Почему ctrl-c не выходит из режима ввода mysql в Windows?

Потому что вы сказали MySQL интерпретировать ваши команды выхода как правильный ввод.

Что делает MySQL терминал трудным для понимания, так это то, что существуют различные режимы для одинарных кавычек, двойных кавычек и нормальный режим.

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

  1. Выходите из режима двойных кавычек.
  2. Выход из режима одиночных кавычек.
  3. Выход из режима mysql.
  4. Выход из режима 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:\>

Пока вы находитесь в режиме одиночной или двойной кавычки, никакие экранирующие последовательности не соблюдаются. Даже Ctrl-C и Ctrl-D игнорируются в этих режимах.

В какой из 26 вселенных Ctrl-C не останавливает программу независимо от режима? Возможно, мы никогда не узнаем. Базинга.

1
1
1
2018-12-18 12:37:01 +0000

SQL поддерживает запросы, вводимые в виде нескольких строк. Только при вводе полустолбца ; запрос будет выполнен. Также необходимо прервать любые строки в запросе.

Следите за копированием и вставкой запросов со строками из пакета обработки текста - кавычки могли быть заменены “умными” кавычками, и это испортит ваш запрос.

Если вы ввели несертифицированный запрос, он не выполняется, и поэтому вывод текста не работает - MySQL думает, что вы все еще в середине запроса. Командная строка изменяется, чтобы показать, какой ввод необходим для завершения запроса. Например, может потребоваться кавычка или двойная кавычка. Это мощный инструмент, и командная строка полезна, но я нахожу это запутанным, пока не прочитаю ответы и комментарии в этой теме. прочтите здесь спецификацию

Оповещение ‘верхнего уровня’:

mysql>

Если вы видите это, то можете ввести команду, закончить на ; и нажать enter.

Если вы видите такую команду:

'>
">
->

Тогда MySQL ждет, когда вы завершите строку с кавычками или запрос с полуколонкой.

Вот как сказать MySQL, чтобы он отменил ваш запутанный непереносимый запрос и вернул вас к основной подсказке:

\c

Я думаю, что это безопаснее, чем прерывать и выполнять непреднамеренный запрос. После этого вы должны вернуться к подсказке > и можете выйти с ней:

exit
1
1
1
2019-01-31 16:42:07 +0000

\q делает работу за меня. Используя терминал Убунту.

0
0
0
2018-10-30 12:37:35 +0000

Вы можете попытаться уйти, используя Ctrl+Shift+D.

Похожие вопросы

3
19
10
28
8