Es gibt etwas in der MySQL-Konsole, das mich verrückt macht. Wenn ich ctrl+ cdrücke, um den aktuell eingegebenen Befehl abzubrechen, wird das Terminal beendet.
In jedem Endgerät I Know ( *nix
Terminals Python
, PostgreSQL
), ctrl+ cAbbruch des aktuellen Befehl und ctrl+ dverlässt das Terminal.
Dieses Problem wurde 2003 gemeldet und ist seitdem mehrmals aufgetreten.
Gibt es einen Weg zu:
- Ändern Sie dieses Verhalten oder
- Überzeugen Sie das MySQL-Entwicklerteam, dass dies wirklich ärgerlich ist?
mysql
interface
mysql-console
Adam Matan
quelle
quelle
Mindestens Version 5.6.14 des Clients verfügt über die Option --sigint-ignore , um den SIGINT-Handler vollständig zu ignorieren. Es scheint am 7. Oktober 2004 hinzugefügt worden zu sein - also ist es zumindest eine Weile her. Ich habe es gerade getestet und es hindert STRG-C daran, den MySQL-Client abzubrechen. Es wäre jedoch schön, wenn STRG-C auch den aktuellen Befehlszeilenpuffer wie in der BASH-Shell abbrechen würde - so wie es die PostgreSQL-CLI tut. Ich habe MySQL gegabelt, um zu sehen, wie schwierig es sein würde, so etwas zu implementieren. Ich werde eine Homebrew-Formel mit einem Tarball-Link posten, wenn es fertig ist.
UPDATE 1 Hast du jemals einen dieser Tage? Ich habe den versprochenen Patch erstellt und dann beschlossen, ein Video zu erstellen, um es zu demonstrieren. Es funktionierte! Ich konnte es jedoch nicht deaktivieren! Nun, es stellt sich heraus, dass MySQL letztes Jahr tatsächlich die Funktionalität des Kern-Clients eingebunden hat ! Ja, das A zu diesem Q ist, mindestens den Client von MySQL 5.7.3-794-g901d27f herunterzuladen. Es hat die Funktionalität, die wir uns alle gewünscht haben.
Beispiel in der Befehlszeile fügen Sie einfach die --sigint-ignore Flagge:
Oder erstellen Sie wie gewohnt eine MySQL-Konfigurationsdatei für Ihr Benutzerkonto unter
$HOME/.my.cnf
(%USERPROFILE%/.my.cnf
unter Windows) mit folgendem Inhalt:Dadurch wird sichergestellt, dass alle
mysql
Ausführungen die lästige Tastenkombination Strg-C ignorieren und sich wie ein guter SQL-Client verhalten.quelle
Während das ctrl+ c-Verhalten ärgerlich ist, können Sie
\c
die aktuelle Abfrage trotzdem mit abbrechen. Sie müssen sich nur aneignen, dass Sie bei der Verwendung von mysql CLI\c
anstelle von ctrl+ c!quelle
Gute Nachricht: Die ^ C-Funktionalität von MySQL wurde mit # 66583 endlich behoben .
Aus dem 5.7.0 Changelog:
quelle
Welche Version des Clients verwenden Sie? Ich erinnere mich, dass dies das ältere Verhalten ist, aber die neuesten Versionen von 5.1 und 5.5 scheinen den laufenden Befehl einfach abzubrechen, ohne den Client zu beenden. Andererseits kann es sein, dass ich die Percona-Builds verwende. Sie könnten versuchen, nur ihren Client auszuführen, wenn dies der Fall ist.
quelle