เป็นไปได้หรือไม่ที่จะสร้างฐานข้อมูลเปล่าด้วยหนึ่งบรรทัดคำสั่งใน bash?
ความพยายามในมือใหม่ของฉันล้มเหลว:
mysql -uroot $(create database mydatabase;)
ท้ายที่สุดฉันต้อง
mysql -uroot
create database mydatabase;
exit;
เป็นไปได้หรือไม่ที่จะสร้างฐานข้อมูลเปล่าด้วยหนึ่งบรรทัดคำสั่งใน bash?
ความพยายามในมือใหม่ของฉันล้มเหลว:
mysql -uroot $(create database mydatabase;)
ท้ายที่สุดฉันต้อง
mysql -uroot
create database mydatabase;
exit;
คำตอบ:
@ คำตอบของ Nitrodist จะใช้ได้ แต่มันเป็นปัญหาทางวิศวกรรมมากไป ไคลเอนต์บรรทัดคำสั่งของ MySQL รองรับ-e
สวิตช์ที่มีประโยชน์มากเช่น:
mysql -uroot -e "create database 'foo'"
แน่นอนคุณสามารถแทนที่ SQL ที่ถูกต้องลงไปได้
mysql -uroot -e "create database foo"
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
อ๋อใช้ราคาเดียวเพิ่มเติมให้ฉัน หากไม่มีพวกมันก็ใช้งานได้ดี ขอบคุณ @IanVaughan
ตามเอกสารของ MySQL mysql
สามารถใช้คำสั่งจากstdin
shell> mysql -uroot < script.sql > output.tab
คุณสามารถใช้การทดแทนกระบวนการเพื่อทำสิ่งนี้ให้สำเร็จ:
shell> mysql -uroot <(echo "create database mydatabase;")
หรือคุณสามารถเพียงแค่ท่อมันไปstdin
จากmysql
ปกติ:
shell> echo "create database mydatabase;" | mysql -uroot
ไม่สามารถทดสอบสิ่งนี้เป็นการส่วนตัวได้ แต่ฉันคิดว่ามันน่าจะใช้ได้
แก้ไข:ตัวเลือกอื่นคือการใช้-e
ตัวเลือกที่ระบุไว้ที่นี่เช่น:
shell> mysql -uroot -e "create database mydatabase;"