bash bir satır ile mysql veritabanı oluşturmak


24

Bash'da bir komut satırıyla boş bir veritabanı oluşturmak mümkün müdür?

Acemi girişimlerim başarısız oldu:

mysql -uroot $(create database mydatabase;)

Zorunda kaldım

  • mysql -uroot
  • create database mydatabase;
  • exit;

Yanıtlar:


32

@ Nitrodist'in cevabı işe yarayacak, ancak problemi aşırı mühendislik yapıyor. MySQL'in komut satırı istemcisi, aşağıdaki gibi çok kullanışlı -eanahtarı destekler :

mysql -uroot -e "create database 'foo'"

Elbette geçerli herhangi bir SQL yerine o yerini kullanabilirsiniz.


üzgünüm cevabımı biraz daha araştırmadan sonra düzenlemiştim.
Nitrodist

5
Tırnak gerekli değildirmysql -uroot -e "create database foo"
IanVaughan

1
Evet, ek tek tırnak kullanarak bana bir verdi ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''foo'' at line 1. Onlar olmadan iyi çalışıyor. Teşekkür @IanVaughan
leymannx

14

MySQL'in belgelerine göre, mysqlkomutları alabilir.stdin

shell> mysql -uroot < script.sql > output.tab

Bunu gerçekleştirmek için İşlem Değişikliğini kullanabilirsiniz :

shell> mysql -uroot <(echo "create database mydatabase;") 

ya da sadece boru bunu yapabilirsiniz stdinarasında mysqlnormalde:

shell> echo "create database mydatabase;" | mysql -uroot

Bunu kişisel olarak test edemiyorum, ancak bunun çalışması gerektiğini düşünüyorum.

Düzenleme: Başka bir seçenek kullanmaktır -ebelirtilen seçeneği, burada aynen böyle:

shell> mysql -uroot -e "create database mydatabase;"
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.