ฉันต้องการให้สามารถเรียกใช้แบบสอบถามเดียวบนเซิร์ฟเวอร์ระยะไกลในงานสคริปต์
ตัวอย่างเช่นโดยสังหรณ์ใจฉันจะจินตนาการว่ามันจะเป็นอย่างไร:
mysql -uroot -p -hslavedb.mydomain.com mydb_production "select * from users;"
ฉันต้องการให้สามารถเรียกใช้แบบสอบถามเดียวบนเซิร์ฟเวอร์ระยะไกลในงานสคริปต์
ตัวอย่างเช่นโดยสังหรณ์ใจฉันจะจินตนาการว่ามันจะเป็นอย่างไร:
mysql -uroot -p -hslavedb.mydomain.com mydb_production "select * from users;"
คำตอบ:
mysql -u <user> -p -e "select * from schema.table"
mysql -u <user> -p -B --disable-column-names -e 'select * from schema.table'
*
ได้รับการขยายไปยังไฟล์ทั้งหมดในไดเรกทอรีปัจจุบันในขณะที่การขยายตัวนี้ไม่ได้เกิดขึ้นใน singlequotes นั่นคือเหตุผลว่าทำไม Doublequotes จะทำงานให้ quesries *
โดยไม่ต้อง
mysql.exe -u root -e "my query"
mysql -uroot -p -hslavedb.mydomain.com mydb_production -e "select * from users;"
จากการพิมพ์การใช้งาน:
-e
,--execute=name
รันคำสั่งและออก (ปิดใช้งาน--force
และไฟล์ประวัติ)
นี่คือวิธีที่คุณสามารถทำได้ด้วยเคล็ดลับ shell cool:
mysql -uroot -p -hslavedb.mydomain.com mydb_production <<< 'select * from users'
'<<<' สั่งให้เชลล์ใช้สิ่งใดก็ตามที่มันตามมาในรูปแบบ stdin คล้ายกับ piping จาก echo
ใช้แฟล็ก -t เพื่อเปิดใช้งานเอาต์พุตรูปแบบตาราง
หากเป็นคำถามที่คุณเรียกใช้บ่อยคุณสามารถเก็บไว้ในไฟล์ จากนั้นเมื่อใดก็ตามที่คุณต้องการเรียกใช้ :
mysql < thefile
(พร้อมกับการล็อกอินและแฟล็กฐานข้อมูลทั้งหมดของหลักสูตร)
echo "select * from users;" | mysql -uroot -p -hslavedb.mydomain.com mydb_production