it-swarm.com.de

Wie verlasse ich die MySQL-Eingabeaufforderung?

Ich habe MySQL installiert. Jetzt stecke ich in der MySQL-Eingabeaufforderung fest. Ich habe MySQL folgendermaßen ausgeführt:

C:\>mysql.exe
mysql>

Dann gebe ich einen ungültigen Befehl wie diesen ein:

mysql> /version
    ->

Und egal was ich tippe, ich kann MySQL-Kommandozeile/Terminal nicht beenden. Z.B.:

  • exitname__

  • CtrlC

  • CtrlD

  • quitname__

  • Ctrl\

  • CtrlZ

  • byename__

Wie verlasse ich das MySQL-Terminal zum Standard-Terminal?

34
Eric Leschinski

Um die andere Antwort zu ergänzen, können Sie die aktuelle ungültige Abfrage einfach mit einem Semikolon beenden:

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

c:\mysql\bin>

Oder mit \G (mit dem Zeilen vertikal angezeigt werden sollen):

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

c:\mysql\bin>

Natürlich setzen beide Optionen voraus, dass Sie kein Eröffnungsangebot haben. Wenn Sie dies tun, müssen Sie es zuerst mit einem abschließenden Zitat abschließen.

28
Pacerier

Warum beendet Strg-C den MySQL-Eingabemodus in Windows nicht?

Weil Sie MySQL angewiesen haben, Ihre Exit-Befehle als gültige Eingabe zu interpretieren.

Das MySQL-Terminal ist nur schwer zu verstehen, da es verschiedene Modi für einfache Anführungszeichen, doppelte Anführungszeichen und normale Anführungszeichen gibt.

Um den MySQL-Eingabemodus zu verlassen, müssen Sie die folgenden Schritte ausführen:

  1. Verlassen Sie den Anführungszeichen-Modus.
  2. Verlassen Sie den Modus für einfache Anführungszeichen.
  3. Verlassen Sie den MySQL-Modus.
  4. Beenden Sie MySQL wieder auf dem Standardterminal.

Das grundlegendste Beispiel:

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

C:\>

Sie haben den Standardmodus im obigen Beispiel nie verlassen, damit die Exit-Befehle ordnungsgemäß funktionieren.

Beispiel 2 (das ist es, was dich auslöst).

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

Während Sie sich im einfachen oder doppelten Anführungszeichenmodus befinden, werden keine Escape-Sequenzen berücksichtigt. Sogar Ctrl-C und Ctrl-D werden in diesen Modi ignoriert.

In welchem ​​der 26 Universen stoppt Strg-C ein Programm nicht unabhängig vom Modus? Wir werden es vielleicht nie erfahren. Bazinga.

19
Eric Leschinski

SQL unterstützt Abfragen, die als mehrere Zeilen eingegeben wurden. Nur wenn Sie ein Semikolon ; eingeben, wird die Abfrage ausgeführt. Sie müssen auch alle Zeichenfolgen in Ihrer Abfrage beendet haben.

Achten Sie auf das Kopieren und Einfügen von Abfragen mit Zeichenfolgen aus einem Textverarbeitungspaket. Möglicherweise wurden Anführungszeichen durch "intelligente Anführungszeichen" ersetzt, wodurch Ihre Abfrage durcheinander gebracht wird.

Wenn Sie eine nicht abgeschlossene Abfrage eingegeben haben, wird diese nicht ausgeführt, und deshalb funktioniert die Eingabe von exit nicht. MySQL glaubt, dass Sie sich noch mitten in einer Abfrage befinden. Der Befehl Eingabeaufforderung ändert sich, um anzuzeigen, welche Eingabe zum Beenden der Abfrage erforderlich ist. Beispielsweise kann ein Anführungszeichen oder ein doppeltes Anführungszeichen erforderlich sein. Das ist mächtig und die Eingabeaufforderung ist hilfreich, aber ich fand es verwirrend, bis ich die Antworten und Kommentare zu diesem Thread gelesen habe.

Lesen Sie die Spezifikation hier

Die Eingabeaufforderung auf oberster Ebene lautet:

mySQL>

Wenn Sie dies sehen, können Sie einen Befehl eingeben und mit beenden. und drücken Sie die Eingabetaste.

Wenn Sie eine Eingabeaufforderung wie diese sehen:

'>
">
->

Dann wartet MySQL darauf, dass Sie einen String mit einem Anführungszeichen oder eine Abfrage mit einem Semikolon abschließen.

So weisen Sie MySQL an, Ihre durcheinandergebrachte, nicht abgeschlossene Abfrage abzubrechen und zur Hauptaufforderung zurückzukehren:

\c

Ich halte dies für sicherer, als Ihre unbeabsichtigte Abfrage zu beenden und auszuführen. Danach sollten Sie zur Eingabeaufforderung zurückkehren und können mit den folgenden Schritten beenden:

exit
1
Little Brain

'\ q' erledigt den Job für mich. Ubuntu Terminal verwenden.

1
Daniyal Javaid

Sie können versuchen, mit zu entkommen Ctrl+Shift+D

1
Akshay Chawda

Ok, das hat bei mir in Ubuntu 16.04 funktioniert, tippe einfach exit; (mit Semikolon):

mysql> exit;
0
evilReiko