เป็นไปได้หรือไม่ที่จะกำหนดรหัสผ่านสำหรับฐานข้อมูลหรือต่อโฮสต์ใน. my.cnf


47

ฉันมีดังต่อไปนี้ในของฉัน ~/.my.cnf

[client]
password="somepass"

แต่นี่ไม่ใช่รหัสผ่านที่ฉันใช้สำหรับ user @ host / ฐานข้อมูลทุกตัวที่ฉันเชื่อมต่อ มีวิธีในการระบุรหัสผ่านที่แตกต่างกันสำหรับสิ่งที่แตกต่างกันดังนั้นฉันไม่ต้องพิมพ์รหัสผ่านหรือไม่?


[ผู้ใช้ @DTest ตอบคำถามเช่นนี้ในเดือนพฤษภาคมของปีนี้] [1] [1]: dba.stackexchange.com/questions/2820/…
RolandoMySQLDBA

คำตอบ:


64

ตามที่ฉันตอบไว้ที่นี่คุณสามารถเพิ่มส่วนสำหรับผู้ใช้แต่ละคน / โฮสต์ / db ที่คุณเชื่อมต่อด้วยการใช้ไวยากรณ์ใน~/.my.cnf:

[clienthost1]   # Note: client + host1
user=myuser
password=mypass
database=dbname
host=server.location.com

เมื่อสิ่งนี้อยู่ในผู้ใช้ของ.my.cnfคุณคุณสามารถใช้มันได้โดยใช้บรรทัดคำสั่ง:

$ mysql --defaults-group-suffix=host1

ตามที่สัญญา +1 !!!
RolandoMySQLDBA

คุณสามารถอธิบาย --defaults-group-suffix ได้ไหม
Otheus

ดี ฉันใช้เวลาสักพักกว่าจะหาที่เหลือ แต่สำหรับการสำรองข้อมูล mysql Cron ตอนนี้ฉันสามารถใช้ mysqldump --defaults-group-suffix = host1 -P 3306 -h 111.0.0.xxx --ssl -u db_usr db_name > / home / myaccount / backups / db_name _ $ (echo $ (วันที่ '+ \% Y \% m \% d'). sql.gz) เพื่อสร้างการสำรองข้อมูล gzipped ขอขอบคุณ!
user1324409

หมายเหตุ: หากคุณใส่สิ่งนี้ลงใน my.cnf แบบโกลบอลเช่น/etc/mysql/my.cnfแต่มีผู้ใช้กำหนด.my.cnfโดย[client]กำหนดไว้ในส่วนหลังจะแทนที่การตั้งค่าในไฟล์โกลบอล! หุยฮา
Otheus

โปรดทราบว่า manpage ของ MariaDB เท็จว่าคำต่อท้ายxจะอ่านหัวข้อ[client_x]แต่ในความเป็นจริงคุณต้องมีคำต่อท้าย_xสำหรับเรื่องนั้น
Daniel Böhmer

8

ไม่แนะนำให้ใส่รหัสผ่านที่ชัดเจนในไฟล์ข้อความเนื่องจาก mysql 5.6.6

คุณสามารถใช้mysql_config_editorเพื่อบันทึกรหัสผ่านที่เข้ารหัสและให้รหัสผ่านที่แตกต่างกันสำหรับการเชื่อมต่อที่แตกต่างกันhttps://dev.mysql.com/doc/refman/5.6/en/mysql-config-editor.html


3
ความปลอดภัยโดยความสับสน ...
Federico Razzoli

+1 สำหรับการกล่าวถึง mysql_config_editor
RolandoMySQLDBA

1
จนกว่าโปรแกรมนี้จะ (1) ย้อนกลับไปเป็นเวอร์ชันก่อนหน้า (2) อนุญาตให้ปรับใช้รหัสผ่านอัตโนมัติ (เช่นไม่บังคับให้อ่านรหัสผ่านบน TTY) ฉันไม่แนะนำวิธีนี้
Otheus

MariaDB มีการสนับสนุนหรือคุณสมบัติที่เปรียบเทียบได้เพื่อให้ตรงกับ mysql_config_editor หรือไม่?
Jeremy Hajek

@ JeremyHajek ไม่ไม่ได้และไม่น่าจะเป็นไปได้เพราะ MariaDB devs ชี้ให้เห็นว่ามีการปรับปรุงด้านความปลอดภัยที่ผิดพลาด: MySQL 5.6: การรักษาความปลอดภัยด้วยความพึงพอใจ?
Bloodgain

8

คำตอบอื่น ๆ นั้นถูกต้อง น่าเสียดายที่mysqladminไม่รองรับ--defaults-group-suffix(อย่างน้อยไม่ใช่เวอร์ชั่นที่ฉันใช้)

ดังนั้นฉัน resorted เพื่อใช้--defaults-file=HOST.cnfแทนซึ่งทำงานสำหรับmysql, และmysqladminmysqldump


2
การเพิ่มสิ่งนี้ลงใน. bash_profile ของฉันทำให้ง่ายยิ่งขึ้น:alias my-host='mysql --defaults-file=HOST.cnf'
spyle
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.