Wie beendet man die MySQL-Eingabeaufforderung?

130722
Eric Leschinski

Ich habe MySQL installiert. Jetzt stecke ich in der MySQL-Eingabeaufforderung. Ich habe MySQL so ausgeführt:

C:\>mysql.exe mysql> 

Dann gebe ich einen ungültigen Befehl ein:

mysql> /version -> 

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

  • exit

  • CtrlC

  • CtrlD

  • quit

  • Ctrl\

  • CtrlZ

  • bye

Wie verlasse ich das MySQL-Terminal zum Standardterminal?

28
Haben Sie versucht, Ihren Computer herunterzufahren? / s VarunAgw vor 5 Jahren 0

4 Antworten auf die Frage

22
Pacerier

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(was Zeilen vertikal darstellen soll):

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

Natürlich gehen beide Optionen davon aus, dass Sie kein Eröffnungszitat haben. Wenn Sie dies tun, müssen Sie es zuerst mit einem abschließenden Zitat abschließen.

Was mich veranlasst hatte, war, dass ich nicht ganz verstanden hatte, wie das mysql-Terminal Eingaben in den hier beschriebenen Zitatmodi behandelt: https://dev.mysql.com/doc/refman/5.0/de/entering-queries.html Es gibt 5 Modi: `->`, `'>`, `"> `,` \ `>` und `/ *>` Ich habe es erneut mit den neuesten Versionen getestet, und es hat richtig funktioniert. So sieht es aus ein Fehler behoben. Eric Leschinski vor 8 Jahren 0
Semikolon funktioniert nicht ... nichts tut. Wenn ich \ G mache, verhält es sich so, als ob es diesen dummen -> Modus verlassen hätte, geht aber nach einem anderen Befehl wieder hinein. Warum ist MySQL so dumm? Amalgovinus vor 7 Jahren 0
Die eigentliche Antwort ist, dass MySQL-Cli von Windows fehlerhaft ist und feststeckt. Der einfachste Weg unter Windows ist die Verwendung von git bash Amalgovinus vor 5 Jahren 0
18
Eric Leschinski

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 schwer zu verstehen, da es verschiedene Modi für einfache Anführungszeichen, doppelte Anführungszeichen und normalen Modus gibt.

Um den mysql-Eingabemodus zu verlassen, müssen Sie folgende Schritte ausführen:

  1. Verlassen Sie den doppelten Anführungsmodus.
  2. Verlassen Sie den Modus für ein Anführungszeichen.
  3. Verlassen Sie den Mysql-Modus.
  4. Beenden Sie Mysql zum Standardterminal.

Das einfachste Beispiel:

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

Im obigen Beispiel haben Sie den Standardmodus nie verlassen, sodass die Beendigungsbefehle ordnungsgemäß funktionieren.

Beispiel 2 (das ist, was Sie 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 Modus für einfache oder doppelte Anführungszeichen befinden, werden keine Escape-Sequenzen berücksichtigt. Gerade Ctrl-Cund Ctrl-Dwerden in diesen Modi ignoriert.

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

Ich vermute, Zitate entfliehen den Dingen und warten auf weitere Eingaben. Das macht eigentlich Sinn, wenn Sie so etwas wie "exit" in einer Datenbank speichern Journeyman Geek vor 10 Jahren 1
@Eric, Ctrl-D funktioniert zwar nicht, wenn Sie sich im Zitatmodus befinden, Ctrl-C ** funktioniert jedoch weiterhin **, wenn Sie ältere ** Clients ** wie mysql 5.5.43 und mysql 5.1.73 verwenden. Getestet auf Sieg 8.1. Pacerier vor 8 Jahren 0
Ctrl-c lässt es immer noch nicht für mich. Ich bekomme nie die "Tschüss" -Meldung. Wenn ich im -> Modus bleibe, kann ich nur noch Strg + C verlassen, um herauszukommen. Absolut nichts anderes erhält eine Antwort vom Dolmetscher. Mysql ist in den meisten Fällen intuitiv, aber dies ist kein solcher Fall. Amalgovinus vor 7 Jahren 0
Möglicherweise frisst Ihr Terminal-Emulator Ihre Strg-Codes und sendet einen anderen Schlüsselcode an den Prozess, den er als Text interpretiert. Ich fühle deine Schmerzen. Als ich diesen Beitrag im Jahr 2013 geschrieben habe, war es für dieses Problem und eine Million andere, dass es mir gefällt, dass mein früherer Windows-Rechner wegen der Verschmutzung meines PCs in den Müll geworfen wurde. Er sitzt irgendwo auf einer Mülldeponie . Die einzige Möglichkeit, dieses Problem zu beheben, bestand darin, das Windows-Betriebssystem loszuwerden und zu Mac- und Linux-Ideologien zu wechseln, die diese Verbrechen nicht begehen, indem sie Zwischenhändler einfügen, um zu verhindern, dass Ihre Ctrl-C funktioniert. Eric Leschinski vor 5 Jahren 0
1
Akshay Chawda

Sie können versuchen, mit Ctrl+ Shift+ zu entkommenD

Dies ist ein Artefakt des spezifischen Terminal-Emulators, den Sie verwenden. Es wäre daher hilfreich zu wissen, welcher Emulator Ihnen gehört. Ihr Mitarbeiter hat anscheinend Ctrl-Shift-D einem Schlüsselcode zugeordnet, den der mysql-Prozess als Exit interpretiert. In diesem Fall sollten Sie in der Lage sein, die Schlüsselcodes in Ihrem Terminalemulator neu zuzuordnen, damit Sie keinen Karpaltunnel benötigen, um ein Programm zu beenden. Eric Leschinski vor 5 Jahren 1
0
evilReiko

Ok, das hat für mich in Ubuntu 16.04 funktioniert, einfach eintippen exit;(mit Semikolon):

mysql> exit;