Bagaimana cara keluar dari command prompt MySQL?


37

Saya telah menginstal MySQL. Sekarang saya terjebak di dalam command prompt MySQL. Saya menjalankan MySQL seperti ini:

C:\>mysql.exe
mysql>

Lalu saya ketik beberapa perintah yang tidak valid seperti ini:

mysql> /version
    ->

Dan apa pun yang saya ketik, saya tidak dapat keluar dari baris perintah / terminal MySQL. Misalnya:

  • exit

  • CtrlC

  • CtrlD

  • quit

  • Ctrl\

  • CtrlZ

  • bye

Bagaimana cara keluar dari terminal MySQL ke terminal default?


1
Apakah Anda mencoba mematikan komputer Anda? / s
VarunAgw

Jawaban:


29

Untuk menambahkan jawaban yang lain, Anda bisa mengakhiri kueri tidak valid saat ini menggunakan tanda titik koma:

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

c:\mysql\bin>

Atau menggunakan \G(yang seharusnya membuat baris ditampilkan secara vertikal):

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

c:\mysql\bin>

Tentu saja, kedua opsi menganggap Anda tidak memiliki kutipan pembuka. Jika ya, Anda harus terlebih dahulu menutupnya dengan kutipan akhir.


Apa yang membuat saya tersandung adalah saya tidak sepenuhnya memahami bagaimana terminal mysql memperlakukan input dalam berbagai mode penawaran seperti yang didefinisikan di sini: dev.mysql.com/doc/refman/5.0/en/entering-queries.html Ada 5 mode : ->, '>, ">, `>, dan /*> saya diuji lagi pada versi terbaru, dan itu bekerja dengan benar. Jadi sepertinya ada bug yang diperbaiki.
Eric Leschinski

Titik koma tidak berfungsi ... tidak ada yang berhasil. Jika saya melakukan \ G, ia bertindak seolah keluar dari mode bodoh ->, tetapi kemudian kembali ke dalamnya setelah perintah lain. Mengapa mysql begitu bodoh tentang ini?
Amalgovinus

Jawaban sebenarnya adalah, Windows mysql cli kacau dan bisa macet. Cara termudah di windows adalah dengan menggunakan git bash
Amalgovinus

20

Mengapa ctrl-c tidak keluar dari mode input mysql di Windows?

Karena Anda telah memberi tahu MySQL untuk menafsirkan perintah keluar Anda sebagai input yang valid.

Apa yang membuat terminal MySQL sulit dipahami adalah ada mode yang berbeda untuk penawaran tunggal, penawaran ganda, dan mode normal.

Jadi untuk keluar dari mode input mysql, Anda harus melakukan langkah-langkah ini:

  1. Keluar dari mode penawaran ganda.
  2. Keluar dari mode kutipan tunggal.
  3. Keluar dari mode mysql.
  4. Keluar dari mysql kembali ke terminal default.

Contoh paling dasar:

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

C:\>

Anda tidak pernah meninggalkan mode default dalam contoh di atas sehingga perintah keluar berfungsi dengan benar.

Contoh 2 (inilah yang membuat Anda tersandung).

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

Saat Anda berada dalam mode kutip tunggal atau mode kutip ganda, tidak ada urutan melarikan diri yang dihormati. Bahkan Ctrl-Cdan Ctrl-Ddiabaikan dalam mode ini.

Di mana di antara 26 alam semesta mana Ctrl-C tidak menghentikan program terlepas dari mode? Kita mungkin tidak pernah tahu. Bazinga.


1
Saya menebak kutipan lolos dari hal-hal, dan menunggu input lebih banyak. Itu sebenarnya agak masuk akal ketika Anda mungkin menyimpan sesuatu seperti "keluar" di dalam database
Journeyman Geek

@ Eric, Sementara Ctrl-D tidak berfungsi saat Anda berada dalam mode kutip, Ctrl-C masih berfungsi jika Anda menggunakan klien yang lebih lama seperti mysql 5.5.43 dan mysql 5.1.73. Diuji pada win 8.1.
Pacerier

Ctrl-c masih tidak memberikannya untuk saya. Saya tidak pernah mendapatkan pesan "selamat tinggal". Selain itu, ketika saya tetap dalam mode ->, satu-satunya hal yang dapat saya lakukan adalah Ctrl + C untuk keluar? Sama sekali tidak ada lagi yang mendapat tanggapan dari penerjemah. Mysql intuitif dalam banyak kasus, tetapi ini bukan kasus seperti itu.
Amalgovinus

Mungkin emulator terminal Anda melahap kode-Ctrl Anda dan mengirimkan kode kunci yang berbeda ke proses yang ditafsirkan sebagai teks. Saya merasakan sakit Anda, Kembali ketika saya menulis posting ini kembali pada tahun 2013, itu untuk masalah ini dan satu juta lainnya seperti itu bahwa mesin windows saya sebelumnya nuked dan dibuang ke tempat sampah karena mencemari PC saya, ia duduk di tempat pembuangan akhir di suatu tempat . Satu-satunya cara saya menemukan cara untuk memperbaiki ini adalah dengan menyingkirkan sistem operasi Windows dan bermigrasi ke ideologi Mac dan Linux yang tidak melakukan kejahatan memasukkan perantara untuk mencegah Ctrl-C Anda bekerja.
Eric Leschinski

1

SQL mendukung kueri yang dimasukkan sebagai beberapa baris. Hanya ketika Anda memasukkan titik koma ;, kueri akan dieksekusi. Anda juga harus menghentikan string apa pun dalam kueri Anda.

Perhatikan permintaan penyalinan dan tempel dengan string dari paket pengolah kata - kutipan mungkin telah diganti dengan 'kutipan pintar' dan ini akan mengacaukan kueri Anda.

Jika Anda memasukkan kueri yang tidak ditentukan, itu tidak berjalan, dan itu sebabnya pengetikan keluar tidak berfungsi - MySQL berpikir Anda masih di tengah kueri. Prompt perintah berubah untuk menampilkan input apa yang diperlukan untuk mengakhiri kueri. Misalnya kutipan atau kutipan ganda mungkin diperlukan. Ini sangat kuat dan command prompt sangat membantu tetapi saya merasa membingungkan sampai saya membaca jawaban dan komentar di utas ini.

baca spesifikasinya di sini

Prompt 'level atas' adalah:

mysql>

Jika Anda melihat ini, maka Anda dapat memasukkan perintah, akhiri dengan; dan tekan enter.

Jika Anda melihat prompt seperti ini:

'>
">
->

Kemudian MySQL sedang menunggu Anda untuk mengakhiri sebuah string dengan kutipan atau kueri dengan titik koma.

Berikut ini cara memberi tahu MySQL untuk membatalkan permintaan Anda yang berantakan dan membuat Anda kembali ke prompt utama:

\c

Saya pikir ini lebih aman daripada mengakhiri dan menjalankan permintaan Anda yang tidak diinginkan. Setelah ini, Anda harus kembali ke prompt> dan dapat keluar dengan:

exit


0

Anda dapat mencoba melarikan diri dengan menggunakan Ctrl+ Shift+D


3
Ini adalah artefak dari emulator terminal spesifik yang Anda gunakan, jadi akan sangat membantu untuk mengetahui yang mana milik Anda. Rupanya Anda telah memetakan kembali Ctrl-Shift-D ke kode kunci yang diinterpretasikan oleh proses mysql untuk berarti keluar. Jika ini masalahnya, Anda harus dapat memetakan kembali kode kunci di emulator terminal Anda sehingga Anda tidak perlu mendapatkan carpal tunnel untuk keluar dari program.
Eric Leschinski
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.