Komut satırından mysql aracılığıyla tek bir sorguyu nasıl çalıştırırsınız?


157

Komut dosyası oluşturulmuş bir görevde uzak bir sunucuda tek bir sorgu çalıştırabilmek istiyorum.

Örneğin, sezgisel olarak, şöyle bir şey olacağını hayal ediyorum:

mysql -uroot -p -hslavedb.mydomain.com mydb_production "select * from users;"

Yanıtlar:


249
mysql -u <user> -p -e "select * from schema.table"

3
C: \ Program Dosyaları (x86) \ MySQL \ MySQL Server 5.7 \ bin> mysql.exe -u root -p -e "sorgum" ----> HATA 1045 (28000): 'root' kullanıcısı için erişim reddedildi 'localhost' (şifre kullanarak: EVET)
Dr.jacky

2
Bu büyük bir mysql sitesi değil, bir google arama ("mysql exec sql komut satırından" için) ilk sonuç olmalı!
Guillaume Bois

4
Ayrıca, üstbilgi ve tablo biçimini mysql -u <user> -p -B --disable-column-names -e 'select * from schema.table'
çıkarmak

2
@tinybyte Linux Varsayım: Insinde çift tırnak işareti *, geçerli dizindeki tüm dosyalara genişletilirken, bu genişletme tek tırnak içinde gerçekleşmez, nedeni budur. Doublequotes olmadan quesries için çalışacaktır *.
NobbZ

2
@ Dr.jacky Eminim artık ihtiyacınız yok, ancak gelecek için, kök kullanıcınızın parolası yoksa, -p seçeneğini boş olarak geçirmeyin, sadece hiç mysql.exe -u root -e "my query"
geçmeyin

29
mysql -uroot -p -hslavedb.mydomain.com mydb_production -e "select * from users;"

Kullanım çıktısından:

-e, --execute=name
Komutu çalıştır ve çık. (Devre dışı bırakır --forceve geçmiş dosyası)


15

serin bir kabuk hilesi ile nasıl yapabilirsiniz:

mysql -uroot -p -hslavedb.mydomain.com mydb_production <<< 'select * from users'

'<<<' kabuğa yankıdan boruya benzer şekilde onu takip eden her şeyi alması talimatını verir.

tablo biçimi çıktısını etkinleştirmek için -t bayrağını kullanma


13

Sık sık çalıştırdığınız bir sorgu ise, bunu bir dosyada saklayabilirsiniz. O zaman çalıştırmak istediğinizde :

mysql < thefile

(tabii ki tüm giriş ve veritabanı bayrakları ile)


6
echo "select * from users;" | mysql -uroot -p -hslavedb.mydomain.com mydb_production
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.