W konsoli MySQL jest coś, co doprowadza mnie do szału. Kiedy naciskam ctrl+, caby anulować wpisywanie bieżącego polecenia, terminal kończy działanie.
W każdym terminalu wiem ( *nix
terminale, Python
, PostgreSQL
) ctrl+ canuluje bieżące polecenie i ctrl+ dwyjście terminal.
Ten problem został zgłoszony w 2003 r. I od tego czasu był kilkakrotnie zderzany.
Czy istnieje sposób na:
- Zmień to zachowanie lub
- Przekonać zespół programistów MySQL, że to naprawdę denerwujące?
mysql
interface
mysql-console
Adam Matan
źródło
źródło
Przynajmniej wersja 5.6.14 klienta ma opcję --sigint-ignore , aby całkowicie zignorować moduł obsługi SIGINT. Wygląda na to, że został dodany 7 października 2004 r. - więc minęło już trochę czasu. Właśnie go przetestowałem i powstrzymuje CTRL-C przed anulowaniem klienta MySQL. Byłoby jednak miło, gdyby CTRL-C anulował również bieżący bufor wiersza poleceń, jak ma to miejsce w powłoce BASH - podobnie jak CLI PostgreSQL. Rozwidliłem MySQL, aby zobaczyć, jak trudno byłoby zaimplementować coś takiego. Kiedy / jeśli będzie gotowy, opublikuję formułę Homebrew z linkiem do tarballa.
AKTUALIZACJA 1 Miałeś kiedyś jeden z tych dni? Stworzyłem obiecaną łatkę , a potem postanowiłem stworzyć film, aby to zademonstrować. Zadziałało! Jednak nie mogłem tego wyłączyć! Okazuje się, że MySQL faktycznie wyposażył tę funkcjonalność w głównego klienta w zeszłym roku ! Tak, od A do tego Q polega na pobraniu przynajmniej klienta MySQL 5.7.3-794-g901d27f. Ma funkcjonalność, której wszyscy pragnęliśmy.
PRZYKŁAD W wierszu polecenia po prostu dodaj flagę --sigint-ignore:
Lub zrób tak jak ja i utwórz plik konfiguracyjny MySQL dla swojego konta użytkownika w
$HOME/.my.cnf
(%USERPROFILE%/.my.cnf
w systemie Windows) z następującą zawartością:Zapewni to, że wszystkie
mysql
wykonania ignorują irytujące Ctrl-C i zachowują się jak dobry klient SQL.źródło
Podczas gdy zachowanie ctrl+ cjest denerwujące, nadal możesz użyć
\c
do anulowania bieżącego zapytania. Musisz po prostu nauczyć się, że korzystając z mysql CLI, używasz\c
zamiast ctrl+ c!źródło
Dobra wiadomość: funkcjonalność ^ C MySQL została w końcu naprawiona przez # 66583 .
Z dziennika zmian 5.7.0 :
źródło
Jakiej wersji klienta używasz? Pamiętam, że było to starsze zachowanie, ale ostatnie wersje 5.1 i 5.5 wydają się po prostu anulować uruchomione polecenie bez wychodzenia z klienta. Z drugiej strony być może używam kompilacji Percona. W takim przypadku możesz spróbować uruchomić ich klienta.
źródło