Có thể có mật khẩu được cấu hình cho mỗi cơ sở dữ liệu hoặc mỗi máy chủ lưu trữ trong .my.cnf


47

Tôi có những điều sau đây ~/.my.cnf

[client]
password="somepass"

nhưng đây không phải là mật khẩu tôi sử dụng cho mọi người dùng @ host / cơ sở dữ liệu tôi kết nối. Có cách nào để chỉ định trong cấu hình các mật khẩu khác nhau cho những thứ khác nhau để tôi không phải nhập chúng vào không?


[User @DTest đã trả lời một câu hỏi như thế này trong tháng năm này] [1] [1]: dba.stackexchange.com/questions/2820/...
RolandoMySQLDBA

Câu trả lời:


64

Như tôi đã trả lời ở đây , bạn có thể thêm một phần cho mỗi người dùng / máy chủ / db mà bạn kết nối bằng cách sử dụng cú pháp trong ~/.my.cnf:

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

Một khi điều này là trong người dùng của .my.cnfbạn, bạn có thể sử dụng nó bằng cách thực hiện điều này trên một dòng lệnh:

$ mysql --defaults-group-suffix=host1

Như đã hứa, +1 !!!
RolandoMySQLDBA

Bạn có thể giải thích điều này --defaults-group-hậu tố?
Otheus

Đẹp. Tôi đã mất một thời gian để tìm ra phần còn lại từ đây nhưng để sao lưu mysron Cron, giờ đây tôi có thể sử dụng mysqldump --defaults-group-hậu tố = host1 -P 3306 -h 111.0.0.xxx --ssl -u db_usr db_name > / home / myaccount / backups / db_name _ $ (echo $ (ngày '+ \% Y \% m \% d'). sql.gz) để tạo bản sao lưu được nén. Cảm ơn bạn!
dùng1324409

Lưu ý: nếu bạn đặt cái này trong một my.cnf toàn cầu, chẳng hạn như /etc/mysql/my.cnf, nhưng có một người dùng được xác định .my.cnfvới [client]định nghĩa trong đó, cái sau sẽ ghi đè cài đặt trong tệp toàn cầu! boo.
Otheus

Lưu ý rằng trang cá nhân của MariaDB tuyên bố sai rằng hậu tố xsẽ đọc phần đó [client_x]nhưng thực tế bạn cần có hậu tố _xcho điều đó
Daniel Böhmer

8

Không nên đặt mật khẩu rõ ràng trong các tệp văn bản kể từ mysql 5.6.6.

Bạn cũng có thể sử dụng mysql_config_editorđể lưu mật khẩu được mã hóa để cung cấp các mật khẩu khác nhau cho các kết nối khác nhau https://dev.mysql.com/doc/refman/5.6/en/mysql-config-editor.html


3
Bảo mật bằng cách che khuất ...
Federico Razzoli

+1 để đề cập đến mysql_config_editor
RolandoMySQLDBA

1
Cho đến khi chương trình này được (1) nhập vào các phiên bản trước, (2) cho phép triển khai mật khẩu tự động (nghĩa là không bắt buộc phải đọc mật khẩu trên TTY), tôi không khuyến nghị phương pháp này.
Otheus

MariaDB có hỗ trợ hoặc tính năng tương đương để phù hợp với mysql_config_editor không?
Jeremy Hajek

@JeremyHajek Không, không, và có thể sẽ không bao giờ vì nhà phát triển MariaDB chỉ ra rằng chỉ cung cấp một cảm giác sai về bảo mật được cải thiện: MySQL 5.6: Bảo mật thông qua Khiếu nại?
Bloodgain

8

Câu trả lời khác là chính xác. Thật không may mysqladmin, không hỗ trợ --defaults-group-suffix(ít nhất không phải là phiên bản tôi đang sử dụng).

Do đó, tôi đã sử dụng --defaults-file=HOST.cnfthay thế, hoạt động cho mysql, mysqladminmysqldump.


2
Thêm phần này vào .bash_profile của tôi thậm chí còn dễ dàng hơn:alias my-host='mysql --defaults-file=HOST.cnf'
spyle
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.