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

Come uscire dal prompt dei comandi di MySQL?

Advertisement

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?

Advertisement
Advertisement

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
Advertisement
1
1
2018-12-18 12:37:01 +0000
Advertisement

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
Advertisement
0
0
2018-10-30 12:37:35 +0000
Advertisement

Puoi provare a scappare usando Ctrl+Shift+D

Advertisement

Domande correlate

3
19
10
28
5
Advertisement