Score:1

สคริปต์ทุบตี â คำสั่งและตัวแปร MySQL

ธง cn

ฉันมีสคริปต์ทุบตีที่ทำการติดตั้งเซิร์ฟเวอร์ Nextcloud โดยอัตโนมัติ

ในการเรียกใช้คำสั่ง MySQL ฉันใช้คำสั่ง mysql -e

user@hostname:~$ mysql -e "สร้างฐานข้อมูล âNextcloudDataBaseNameâ"

ฉันต้องการเก็บชื่อฐานข้อมูล ชื่อผู้ใช้ รหัสผ่าน ฯลฯ ในตัวแปร

วิธีเขียนคำสั่ง mysql -e กับตัวแปร?

user@hostname:~$ mysql -e "สร้างผู้ใช้ â$ชื่อผู้ใช้â@'localhost' ระบุโดย â$UserPassâ"

user@hostname:~$ mysql -e "สร้าง USER ${UserName}@'localhost' ที่ระบุโดย ${UserPass}"

คำสั่งสองคำสั่งด้านบนไม่ทำงาน

ข้อความแสดงข้อผิดพลาดพร้อมรหัสผ่านผู้ใช้ (รหัสผ่านทดสอบ) Â :

ข้อผิดพลาด 1064 (42000) ที่บรรทัด 1: คุณมีข้อผิดพลาดในไวยากรณ์ SQL ของคุณ ตรวจสอบคู่มือที่ตรงกับเวอร์ชันเซิร์ฟเวอร์ MariaDB ของคุณสำหรับไวยากรณ์ที่ถูกต้องเพื่อใช้ใกล้กับ 'qwerty1234'

ไวยากรณ์นี้ดูเหมือนจะใช้งานได้ :

user@hostname:~$ mysql -e "สร้างผู้ใช้ '${DbUserName}'@'localhost' ระบุโดย '${DbUserPass}'"

คำพูดง่ายๆ รอบๆ ชื่อตัวแปร แต่นี่เป็นไวยากรณ์ที่ดีที่สุด แนวทางปฏิบัติที่ดีที่สุดหรือไม่

ขอบคุณ :-)

ua flag
ระวัง: หากมีค่อนข้างในรหัสผ่าน bash จะทำให้คุณมีข้อผิดพลาดทางไวยากรณ์
Score:0
ธง cn

อย่างนี้(กับ นี่เอกสาร):

mysql<<EOF
สร้างผู้ใช้ '$UserName'@'localhost' ระบุโดย '$UserPass';
อฟ

เรียนรู้วิธีการอ้างอิงอย่างถูกต้องในเชลล์ มันสำคัญมาก :

"อัญประกาศคู่" ทุกตัวอักษรที่มีช่องว่าง/อักขระเมตาและ ทั้งหมด การขยาย: "$วาร์", "$(คำสั่ง "$var")", "${อาร์เรย์[@]}", "เอ แอนด์ บี". ใช้ 'คำพูดเดียว' สำหรับรหัสหรือตัวอักษร $'s: 'ราคา $5 US', โฮสต์ ssh 'echo "$HOSTNAME"'. ดู
http://mywiki.wooledge.org/คำคม
http://mywiki.wooledge.org/Arguments
http://wiki.bash-hackers.org/syntax/words

Maxime avatar
cn flag
ขอบคุณ Gilles ทุกอย่างทำงานร่วมกับ Here Doc Merci beaucoup tout fonctionne avec Here Doc et c'est plus propre !

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา