Ada sesuatu di konsol MySQL yang membuat saya gila. Ketika saya menekan ctrl+ cuntuk membatalkan perintah yang sedang diketik, terminal keluar.
Di setiap terminal yang saya tahu ( *nix
terminal Python
,, PostgreSQL
), ctrl+ cmembatalkan perintah saat ini dan ctrl+ dkeluar dari terminal.
Masalah ini telah dilaporkan pada tahun 2003 , dan bertemu beberapa kali sejak itu.
Apakah ada cara untuk:
- Ubah perilaku ini, atau
- Meyakinkan tim pengembang MySQL bahwa ini benar-benar menjengkelkan?
mysql
interface
mysql-console
Adam Matan
sumber
sumber
Setidaknya versi 5.6.14 dari klien memiliki opsi --sigint-abaikan untuk benar-benar mengabaikan penangan SIGINT. Tampaknya sudah ditambahkan pada 7 Oktober 2004 - jadi setidaknya sudah ada beberapa saat. Saya baru saja mengujinya, dan itu membuat CTRL-C tidak membatalkan klien MySQL. Namun, alangkah baiknya jika CTRL-C juga akan membatalkan buffer baris perintah saat ini seperti pada BASH shell - seperti yang dilakukan PostgreSQL CLI. Saya telah bercabang MySQL untuk melihat betapa sulitnya untuk mengimplementasikan beberapa hal seperti itu. Saya akan memposting formula Homebrew dengan tautan tarball saat / jika sudah siap.
PEMBARUAN 1 Pernahkah mengalami salah satu dari hari-hari itu? Saya membuat tambalan yang dijanjikan , dan kemudian saya memutuskan untuk membuat video untuk mendemonstrasikannya. Berhasil! Namun, saya tidak bisa menonaktifkannya! Nah, ternyata MySQL sebenarnya dipanggang dalam fungsionalitas untuk klien inti tahun lalu ! Yap, A untuk Q ini adalah untuk mengunduh setidaknya klien MySQL 5.7.3-794-g901d27f. Ini memiliki fungsi yang kita semua inginkan.
CONTOH Dari baris perintah, tambahkan saja flag --sigint-diabaikan:
Atau, lakukan seperti yang saya lakukan dan buat file konfigurasi MySQL untuk akun pengguna Anda di
$HOME/.my.cnf
(%USERPROFILE%/.my.cnf
pada Windows) dengan konten berikut:Ini akan memastikan bahwa semua
mysql
eksekusi mengabaikan Ctrl-C yang menjengkelkan dan berperilaku seperti klien SQL yang baik.sumber
Meskipun perilaku ctrl+ cini mengganggu, Anda masih dapat menggunakan
\c
untuk membatalkan kueri saat ini. Anda hanya perlu melatih diri Anda bahwa ketika menggunakan CLI mysql, Anda menggunakan\c
bukannya ctrl+ c!sumber
Berita baik: Fungsi MySQL C akhirnya diperbaiki oleh # 66583 .
Dari changelog 5.7.0 :
sumber
Versi klien apa yang Anda gunakan? Saya ingat ini adalah perilaku yang lebih lama tetapi versi terbaru dari 5.1 dan 5.5 tampaknya hanya membatalkan perintah yang berjalan tanpa keluar dari klien. Kemudian lagi mungkin saya menggunakan build Percona. Anda dapat mencoba menjalankan klien mereka jika itu masalahnya.
sumber