Komut satırında bir ok (“->”) sembolü ne anlama gelir?


6

Terminal (Mac OS X) ile çalışıyorum, ancak bunun Linux'un yerleşik bir parçası olduğunu düşünüyorum. Bazen bir komutu yürüttüğümde, Terminal sadece satırda yeni bir girintili satır döndürür ->. Bir şey bekliyor gibi görünüyor, ancak benim açımdan harekete geçip gerekmediğini bilmiyorum. Enter tuşuna basmak başka bir aynı satır döndürür. Ben Ctrl + Csöylediğimde Aborted, bir şeyin açıkça işlendiği anlamına geliyor. Ne anlama geliyor? Örneğin, aşağıdakiler:

$ mysql -u root -h host -p
Enter password:

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is X
Server version: 5.1.39-log MySQL Server

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> mysqldump my_database
    -> 
    -> [Ctrl + C]
    -> Aborted
$

Düzenleme: Bu komut için hatalı bir sözdizimi gibi görünüyor, ancak bu okların nedeni olduğundan emin değilim.


10
Aslında, OS X Unix'tir. GNU / Linux, çok benzer fakat doğrudan ilişkili bir işletim sistemidir.
AndrejaKo

Ve bu özel durumda muhtemelen mysqlilk önce çalıştırmak istemedin . mysqldump my_databaseMySQL isteminin dışında, kendi başına çalıştırın .
Arjan

1
Bash kabuğu açıklanmayan bir alıntı ile benzer yapacak.
Rob,

→ veya better daha iyi görünüyorsun.
Jonny,

Yanıtlar:


11

MySQL komut satırı aracında, araç, girişinizin bir sonraki satıra devam etmesini beklediği anlamına gelir. Burada hedef yolunu bekliyor.

Yaygın "tam" SQL komutları, komut satırında desteklenen girintilerle yazılır. Gibi bir şey söylerdin

SELECT
    `users`.*
FROM
    `users`
WHERE
    `users`.`is_active` = 1 AND
    `users`.`age` < 13
ORDER BY
    `users`.`username`

Harika, ama "->" dan nasıl çıkarım? Noktalı virgül çalışmıyor.
Amalgovinus

1
@Amalgovinus \d ;önce deneyin
Michał Miszczyszyn

7

Oklar etkileşimli bir devam istemidir. Bitmemiş bir komut girerseniz, SQL kabuğu (mysql komutu tarafından çağrılır) geri kalanını bekliyor.

Bu özel durumda, SQL kabuğu mysqldump için bir hedef yolu bekliyor.

Ayrıca, komutları noktalı virgülle sonlandırana kadar komutlar tamamlanmadı. (Teşekkürler @ MrStatic)


1
Bu özel durumda, bekleyen kabuk değil - mysql. Ancak, başka türlü haklısın.
Dennis Williamson,

1
Daha fazla bilgi vermek için bir komutu söyleyebilmen için, en az mysql, bitmemiş bir ';'
Unfundednut

@Dennis Kesin olmayan ifadelerim için üzgünüm - Teknik olarak, bu bir "SQL kabuğu" (bkz. Dev.mysql.com/doc/refman/5.1/en/mysql.html ) ama evet, bash / zsh unix kabuğu değil… cevabımı düzenleyecektir.
ghoppe

1

Gerçekten bir sözdizimi hatasının var; SQL komutları noktalı virgülle bitmelidir. Örneğin:

mysqldump my_database;

0

Eğer kullanırsanız mariadb , mysqldumpmysql komut değil. Bash içinde çalıştırın.

$ mysqldump -u root -h host -p ### my_database > dump.sql

Daha kesin kullanım için, çalıştırın mysqldump --help.

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.