MySQL komut isteminden nasıl çıkılır?


37

MySQL'i kurdum. Şimdi MySQL komut isteminde sıkışıp kaldım. MySQL'i şöyle koştum:

C:\>mysql.exe
mysql>

Sonra bunun gibi geçersiz bir komut yazın:

mysql> /version
    ->

Ve ne yazsam da, MySQL komut satırından / terminalinden çıkamıyorum. Örneğin:

  • exit

  • CtrlC

  • CtrlD

  • quit

  • Ctrl\

  • CtrlZ

  • bye

MySQL terminalinden varsayılan terminale nasıl çıkabilirim?


1
Bilgisayarınızı kapatmayı denediniz mi? / s
VarunAgw

Yanıtlar:


29

Diğer cevaba eklemek için, geçerli geçersiz sorguyu noktalı virgül kullanarak sonlandırabilirsiniz:

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

c:\mysql\bin>

Veya \G(satırların dikey olarak gösterilmesi gerekiyordu) kullanarak:

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

c:\mysql\bin>

Elbette, her iki seçenek de açılış teklifiniz olmadığını varsayar. Bunu yaparsanız, önce biten bir alıntı ile kapatmanız gerekir.


Beni tetikleyen , mysql terminalinin, burada tanımlandığı gibi çeşitli teklif modlarında girişi nasıl ele aldığını tam olarak anlamadım: dev.mysql.com/doc/refman/5.0/tr/entering-queries.html 5 mod vardır : ->, '>, ">, `>, ve /*> ben son sürümlerinde tekrar test ve doğru çalıştı. Bu yüzden sabit bir hata gibi görünüyor.
Eric Leschinski

Noktalı virgül çalışmıyor ... hiçbir şey çalışmıyor. \ G yaparsam, o aptal -> moddan çıkmış gibi davranır, ancak daha sonra başka bir komuttan sonra tekrar girer. MySQL neden bu konuda aptal?
Amalgovinus

Asıl cevap, Windows'un mysql cli berbat ve sıkışmış alabilirsiniz. Pencerelerde en kolay yol sadece git bash kullanmaktır
Amalgovinus

20

Ctrl-c neden Windows'ta mysql giriş modundan çıkmıyor?

Çünkü MySQL'e çıkış komutlarınızı geçerli giriş olarak yorumlamasını söylediniz.

MySQL terminalinin anlaşılmasını zorlaştıran şey, tekli fiyat teklifi, çift fiyat teklifi ve normal mod için farklı modlar olduğudur.

Böylece, mysql giriş modundan çıkmak için aşağıdaki adımları yapmanız gerekecektir:

  1. Çifte alıntı modundan çıkın.
  2. Tekli teklif modundan çık.
  3. MySQL modundan çık.
  4. MySQL'den varsayılan terminale geri dönün.

En temel örnek:

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

C:\>

Yukarıdaki örnekte hiçbir zaman varsayılan moddan çıkmadınız, böylece çıkış komutları doğru şekilde çalışıyor.

Örnek 2 (bu sizi tetikleyen şeydir).

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

Tekli teklif modunda veya çiftli teklif modundayken, kaçış sırasına uyulmaz. Bu modlarda bile Ctrl-Cve Ctrl-Dyoksayılır.

Hangi 26 evrende Ctrl-C moddan bağımsız olarak bir programı durdurmuyor? Asla bilemeyiz. Bazinga.


1
Tırnakların bir şeylerden kaçtığını tahmin ediyorum ve daha fazla girdi bekliyor. Bu aslında bir veritabanında "çıkış" gibi bir şey saklayabileceğiniz zaman bir anlam ifade ediyor
Journeyman Geek

@Eric, Ctrl-D alıntı modundayken çalışmazken, mysql 5.5.43 ve mysql 5.1.73 gibi daha eski istemcileri kullanıyorsanız , Ctrl-C hala çalışır . Kazançta test edildi 8.1.
Pacerier

Ctrl-c hala benim için bırakmıyor. "Hoşça kal" mesajını hiç alamadım. Dahası, -> modunda kaldığımda yapabileceğim tek şey çıkmak için Ctrl + C? Kesinlikle başka hiçbir şey tercümandan cevap alamaz. Mysql çoğu durumda sezgiseldir, ancak bu böyle bir durum değildir.
Amalgovinus

Belki de terminal emülatörünüz Ctrl kodlarınızı yuvarlıyor ve metin olarak yorumladığı sürece farklı bir anahtar kodu gönderiyor. Acılarını hissediyorum, 2013'te bu yazıyı geri yazdığımda, bu sorun içindi ve milyonlarca kişi daha eski Windows makinem nükleer olarak çöpe atıldı ve PC'mi kirletmek için çöpe düştü. . Bunu bulmamın tek yolu Windows işletim sisteminden kurtulmak ve Ctrl-C'nizin çalışmasını engellemek için bu aracı ekleme suçlarını işlemeyen Mac ve Linux ideolojilerine geçmek.
Eric Leschinski

1

SQL, birden çok satır olarak girilen sorguları destekler. Yalnızca noktalı virgül girdiğinizde ;sorgu çalıştırılır. Ayrıca, sorgunuzdaki tüm dizeleri sonlandırmanız gerekir.

Kelime işlem paketindeki dizelerle sorguları kopyalamak ve yapıştırmak için dikkat edin - tırnak işaretleri 'akıllı tırnak' ile değiştirilmiş olabilir ve bu sorgunuzu mahvedebilir.

Sonlandırılmamış bir sorgu girdiyseniz, çalışmaz ve bu yüzden exit yazarak çalışmaz - MySQL hala bir sorgunun ortasında olduğunuzu düşünüyor. Komut istemi sorguyu sonlandırmak için hangi girişin gerekli olduğunu göstermek üzere değişir. Örneğin, bir fiyat teklifi veya çift fiyat teklifi gerekebilir. Bu güçlü ve komut istemi yardımcı olur ama bu konu hakkındaki cevapları ve yorumları okuyana kadar kafa karıştırıcı buldum.

şartnameyi burada okuyun

'Üst seviye' istemi:

mysql>

Bunu görürseniz, bir komut girerek bitirebilirsiniz; ve enter tuşuna basın.

Böyle bir bilgi istemi görürseniz:

'>
">
->

Sonra MySQL, bir dizgiyi alıntı ile sonlandırmanızı veya noktalı virgül içeren bir sorguyu sonlandırmanızı bekliyor.

İşte MySQL'e, karışık olmayan sonlandırılmamış sorgunuzu iptal etmesini ve sizi ana istemde göstermesini nasıl sağlayacağınız:

\c

İstenmeyen sorgunuzu sonlandırmak ve çalıştırmaktan daha güvenli olduğunu düşünüyorum. Bundan sonra,> istemine geri dönmelisiniz ve şu yoldan çıkabilirsiniz:

exit


0

Ctrl+ Shift+ Tuşlarını kullanarak kaçmayı deneyebilirsinizD


3
Bu, kullandığınız belirli terminal emülatörünün bir eseridir, bu yüzden hangisinin sizin olduğunu bilmek yardımcı olacaktır. Görünüşe göre görünüşe göre Ctrl-Shift-D, mysql işleminin çıkış anlamına geldiği yorumunu yapan bir anahtara dönüştürdü. Bu durumda, terminal emülatörünüzdeki anahtar kodları yeniden eşleştirebilmeniz gerekir, böylece programdan çıkmak için karpal tünel almak zorunda kalmazsınız.
Eric Leschinski
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.