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

Come uscire dal prompt dei comandi di MySQL?

Ho installato MySQL. Ora sono bloccato nel prompt dei comandi di MySQL. Ho eseguito MySQL in questo modo:

C:\>mysql.exe
mysql>

Poi digito un comando non valido come questo:

mysql> /version
    ->

E non importa cosa digito, non posso uscire dalla riga di comando MySQL / terminale. Per esempio:

  • exit

  • CtrlC

  • CtrlD

  • quit

  • Ctrl\

  • CtrlZ

  • bye

Come posso uscire dal terminale MySQL al terminale di default?

Risposte (5)

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

Per aggiungere all'altra risposta, potresti semplicemente terminare la query corrente non valida usando un punto e virgola:

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

c:\mysql\bin>

Oppure usando \G (che dovrebbe far visualizzare le righe in verticale):

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

c:\mysql\bin>

Naturalmente, entrambe le opzioni presuppongono che tu non abbia una citazione iniziale. Se ce l'hai, devi prima chiuderlo con una citazione finale.

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

Perché ctrl-c non esce dalla modalità di input di mysql in Windows?

Perché hai detto a MySQL di interpretare i tuoi comandi di uscita come input valido.

Ciò che rende il terminale MySQL difficile da capire è che ci sono diverse modalità per le citazioni singole, le doppie citazioni e la modalità normale.

Quindi per uscire dalla modalità di input di mysql, dovrete fare questi passi:

  1. Uscire dalla modalità “doppie virgolette”.
  2. Uscire dalla modalità a virgolette singole.
  3. Uscire dalla modalità mysql.
  4. Uscire da mysql e tornare al terminale di default.

Esempio base:

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

C:\>

Non avete mai lasciato la modalità predefinita nell'esempio precedente, quindi i comandi di uscita funzionano correttamente.

Esempio 2 (questo è quello che ti fa inciampare).

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:\>

Mentre sei in modalità citazione singola o doppia, nessuna sequenza di escape viene rispettata. Anche Ctrl-C e Ctrl-D sono ignorati in queste modalità.

In quale dei 26 universi il Ctrl-C non ferma un programma indipendentemente dalla modalità? Forse non lo sapremo mai. Bazinga.

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

SQL supporta le query inserite come linee multiple. Solo quando si inserisce un punto e virgola ; la query viene eseguita. Dovete anche aver terminato qualsiasi stringa nella vostra query.

Attenzione a copiare e incollare query con stringhe da un pacchetto di elaborazione testi - le virgolette potrebbero essere state sostituite da ‘smart quotes’ e questo incasinerà la vostra query.

Se hai inserito una query non terminata, non viene eseguita, ed è per questo che digitare exit non funziona - MySQL pensa che tu sia ancora nel mezzo di una query. Il prompt dei comandi cambia per mostrare quale input è necessario per terminare la query. Per esempio può essere richiesto un apice o un doppio apice. Questo è potente e il prompt dei comandi è utile, ma l'ho trovato confuso finché non ho letto le risposte e i commenti su questo thread. leggi qui le specifiche

Il prompt di ‘livello superiore’ è:

mysql>

Se vedi questo, allora puoi inserire un comando, finirlo con ; e premere invio.

Se vedi un prompt come questo:

'>
">
->

Allora MySQL sta aspettando che tu concluda una stringa con un apice o una query con un punto e virgola.

Ecco come dire a MySQL di cancellare la tua query non terminata e riportarti al prompt principale:

\c

Penso che questo sia più sicuro che terminare ed eseguire la tua query non prevista. Dopo questo, si dovrebbe tornare al prompt >> e si può uscire con:

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

\q fa il lavoro per me. Usando il terminale di Ubuntu.

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

Puoi provare a scappare usando Ctrl+Shift+D