ฉันมีดังต่อไปนี้ในของฉัน ~/.my.cnf
[client]
password="somepass"
แต่นี่ไม่ใช่รหัสผ่านที่ฉันใช้สำหรับ user @ host / ฐานข้อมูลทุกตัวที่ฉันเชื่อมต่อ มีวิธีในการระบุรหัสผ่านที่แตกต่างกันสำหรับสิ่งที่แตกต่างกันดังนั้นฉันไม่ต้องพิมพ์รหัสผ่านหรือไม่?
ฉันมีดังต่อไปนี้ในของฉัน ~/.my.cnf
[client]
password="somepass"
แต่นี่ไม่ใช่รหัสผ่านที่ฉันใช้สำหรับ user @ host / ฐานข้อมูลทุกตัวที่ฉันเชื่อมต่อ มีวิธีในการระบุรหัสผ่านที่แตกต่างกันสำหรับสิ่งที่แตกต่างกันดังนั้นฉันไม่ต้องพิมพ์รหัสผ่านหรือไม่?
คำตอบ:
ตามที่ฉันตอบไว้ที่นี่คุณสามารถเพิ่มส่วนสำหรับผู้ใช้แต่ละคน / โฮสต์ / db ที่คุณเชื่อมต่อด้วยการใช้ไวยากรณ์ใน~/.my.cnf
:
[clienthost1] # Note: client + host1
user=myuser
password=mypass
database=dbname
host=server.location.com
เมื่อสิ่งนี้อยู่ในผู้ใช้ของ.my.cnf
คุณคุณสามารถใช้มันได้โดยใช้บรรทัดคำสั่ง:
$ mysql --defaults-group-suffix=host1
/etc/mysql/my.cnf
แต่มีผู้ใช้กำหนด.my.cnf
โดย[client]
กำหนดไว้ในส่วนหลังจะแทนที่การตั้งค่าในไฟล์โกลบอล! หุยฮา
x
จะอ่านหัวข้อ[client_x]
แต่ในความเป็นจริงคุณต้องมีคำต่อท้าย_x
สำหรับเรื่องนั้น
ไม่แนะนำให้ใส่รหัสผ่านที่ชัดเจนในไฟล์ข้อความเนื่องจาก mysql 5.6.6
คุณสามารถใช้mysql_config_editor
เพื่อบันทึกรหัสผ่านที่เข้ารหัสและให้รหัสผ่านที่แตกต่างกันสำหรับการเชื่อมต่อที่แตกต่างกันhttps://dev.mysql.com/doc/refman/5.6/en/mysql-config-editor.html
คำตอบอื่น ๆ นั้นถูกต้อง น่าเสียดายที่mysqladmin
ไม่รองรับ--defaults-group-suffix
(อย่างน้อยไม่ใช่เวอร์ชั่นที่ฉันใช้)
ดังนั้นฉัน resorted เพื่อใช้--defaults-file=HOST.cnf
แทนซึ่งทำงานสำหรับmysql
, และmysqladmin
mysqldump
alias my-host='mysql --defaults-file=HOST.cnf'