ฉันกำลังใช้ไคลเอนต์บรรทัดคำสั่ง mysql และฉันไม่ต้องการให้รหัสผ่านทุกครั้งที่ฉันเริ่มไคลเอนต์ ตัวเลือกของฉันคืออะไร?
ฉันกำลังใช้ไคลเอนต์บรรทัดคำสั่ง mysql และฉันไม่ต้องการให้รหัสผ่านทุกครั้งที่ฉันเริ่มไคลเอนต์ ตัวเลือกของฉันคืออะไร?
คำตอบ:
สร้างไฟล์ชื่อ.my.cnf
ในไดเรกทอรีบ้านของคุณที่มีลักษณะเช่นนี้ ตรวจสอบให้แน่ใจว่ามีการตั้งค่าการอนุญาตของระบบไฟล์เพื่อให้ผู้ใช้ที่เป็นเจ้าของเท่านั้นสามารถอ่านได้ (0600)
[client]
host = localhost
user = username.
password = thepassword
socket = /var/run/mysqld/mysqld.sock
#database = mysql
เมื่อคุณติดแท็กคำถามของคุณ mysqldump คุณควรดูคำถามนี้
การใช้ mysqldump ในงาน cron โดยไม่มีรหัสผ่านรูต
อัปเดต (2016-06-29) หากคุณใช้ mysql 5.6.6 ขึ้นไปคุณควรดูเครื่องมือmysql_config_editorที่ให้คุณจัดเก็บข้อมูลประจำตัวในไฟล์ที่เข้ารหัส ขอบคุณGiovanni ที่พูดถึงสิ่งนี้กับฉัน
คุณสามารถใช้ยูทิลิตี้ในการจัดเก็บข้อมูลประจำตัวของการตรวจสอบในแฟ้มเส้นทางการเข้าสู่ระบบการเข้ารหัสชื่อmysql_config_editor
.mylogin.cnf
ในการสร้างชุดข้อมูลรับรองใหม่ให้ทำดังนี้
mysql_config_editor set --host=db.host.org --user=dbuser --password
และป้อนรหัสผ่านของคุณเมื่อได้รับแจ้ง
สิ่งนี้จะจัดเก็บข้อมูลรับรองความถูกต้องของคุณในclient
เส้นทางเข้าสู่ระบบเริ่มต้น
คุณสามารถจัดเก็บข้อมูลรับรองความถูกต้องหลายอย่างโดยการระบุ--login-path
ตัวเลือกอื่น:
mysql_config_editor set --login-path=db2 --host=db2.host.org --user=dbuser --password
ตามค่าเริ่มต้นmysql
ไคลเอนต์จะอ่าน[client]
และ[mysql]
กลุ่มจากไฟล์ตัวเลือกอื่น ๆ ดังนั้นจึงอ่านได้จากไฟล์พา ธ การล็อกอินเช่นกัน ด้วย--login-path
ตัวเลือกโปรแกรมไคลเอนต์จะอ่านพา ธ การล็อกอินที่ระบุชื่อเพิ่มเติมจากไฟล์พา ธ การล็อกอิน กลุ่มตัวเลือกที่อ่านจากไฟล์ตัวเลือกอื่น ๆ จะยังคงเหมือนเดิม พิจารณาคำสั่งนี้:
mysql --login-path=db2
mysql
ลูกค้าอ่าน[client]
และ[mysql]
จากไฟล์ตัวเลือกอื่น ๆ และ[client]
, [mysql]
และ[mypath]
จากแฟ้มเส้นทางการเข้าสู่ระบบ
หากต้องการพิมพ์ข้อมูลทั้งหมดที่เก็บไว้ในไฟล์กำหนดค่าให้รัน:
mysql_config_editor print --all=true
ข้อมูลเพิ่มเติมเกี่ยวกับยูทิลิตี้สามารถพบได้ที่"mysql_config_editor - MySQL Configuration Utility"
เราต้องไม่แสร้งว่า. mylogin.cnfนั้นปลอดภัยเพราะฉันสามารถใช้my_print_defaults -s [use your login-path]
เพื่อทำให้รหัสผ่านนั้นปรากฏเป็นข้อความธรรมดา นี่คือสาเหตุที่ MariaDB ไม่สนับสนุนวิธีการ 'รักษาความปลอดภัยด้วยความสับสน'
มีวิธีอื่นเป็นมุมฉากกับวิธีการดังกล่าวข้างต้นแต่มันอาจจะเป็นความเสี่ยงด้านความปลอดภัยถ้าคนอื่นจะดูจอมอนิเตอร์ของคุณหรือถ้าคุณกำลังบันทึกประวัติของคุณ
อย่างไรก็ตามมันเป็นตัวเลือกที่จะป้องกันไม่ให้คุณได้รับแจ้งและเป็นสิ่งที่ฉันใช้ในภาพนักเทียบท่าทิ้งและ ....
mysql -u YOUR_USER --password=YOUR_PASSWORD_HERE your_database -e "your query" etc.
คุณจะไม่ได้รับแจ้งคุณสามารถตั้งค่านามแฝงชั่วคราวในเชลล์ได้หากต้องการ
ใช้ด้วยความระมัดระวัง
mysql Ver 14.14 Distrib 5.5.61-38.13 สำหรับ debian-linux-gnu (x86_64) โดยใช้ readline 5.1