Tôi đang sử dụng máy khách dòng lệnh mysql và tôi không muốn cung cấp mật khẩu mỗi khi tôi khởi động máy khách. Những lựa chọn của tôi là gì?
Tôi đang sử dụng máy khách dòng lệnh mysql và tôi không muốn cung cấp mật khẩu mỗi khi tôi khởi động máy khách. Những lựa chọn của tôi là gì?
Câu trả lời:
Tạo một tập tin có tên .my.cnf
trong thư mục nhà của bạn trông như thế này. Đảm bảo rằng các quyền của hệ thống tập tin được đặt sao cho chỉ người dùng sở hữu mới có thể đọc nó (0600).
[client]
host = localhost
user = username.
password = thepassword
socket = /var/run/mysqld/mysqld.sock
#database = mysql
Vì bạn cũng đã gắn thẻ câu hỏi của bạn mysqldump, bạn nên xem câu hỏi này.
Sử dụng mysqldump trong cron job mà không cần mật khẩu root
Cập nhật (2016-06-29) Nếu bạn đang chạy mysql 5.6.6 trở lên, bạn nên xem công cụ mysql_config_editor cho phép bạn lưu thông tin đăng nhập trong một tệp được mã hóa. Cảm ơn Giovanni đã đề cập điều này với tôi.
Bạn có thể sử dụng mysql_config_editor
tiện ích để lưu trữ thông tin xác thực trong tệp đường dẫn đăng nhập được mã hóa có tên .mylogin.cnf
.
Để tạo một bộ thông tin đăng nhập mới chạy:
mysql_config_editor set --host=db.host.org --user=dbuser --password
và nhập mật khẩu của bạn khi được nhắc.
Điều này sẽ lưu trữ thông tin xác thực của bạn trong client
đường dẫn đăng nhập mặc định .
Bạn có thể lưu trữ nhiều thông tin xác thực bằng cách chỉ định một --login-path
tùy chọn khác nhau :
mysql_config_editor set --login-path=db2 --host=db2.host.org --user=dbuser --password
Theo mặc định, mysql
máy khách đọc [client]
và [mysql]
các nhóm từ các tệp tùy chọn khác, do đó, nó cũng đọc chúng từ tệp đường dẫn đăng nhập. Với một --login-path
tùy chọn, các chương trình máy khách cũng đọc đường dẫn đăng nhập được đặt tên từ tệp đường dẫn đăng nhập. Các nhóm tùy chọn đọc từ các tệp tùy chọn khác vẫn giữ nguyên. Hãy xem xét lệnh này:
mysql --login-path=db2
Các mysql
khách hàng đọc [client]
và [mysql]
từ các tập tin tùy chọn khác, và [client]
, [mysql]
và [mypath]
từ đường dẫn tập tin đăng nhập.
Để in ra tất cả các thông tin được lưu trữ trong tập tin cấu hình chạy:
mysql_config_editor print --all=true
Thông tin thêm về tiện ích có thể được tìm thấy tại "mysql_config_editor - Tiện ích cấu hình MySQL" .
Chúng ta không được giả vờ rằng .mylogin.cnf hoàn toàn an toàn vì tôi có thể sử dụng my_print_defaults -s [use your login-path]
để làm cho mật khẩu đó xuất hiện trong văn bản thuần túy. Đây là lý do tại sao MariaDB không hỗ trợ phương pháp 'bảo mật bằng cách tối nghĩa' này.
Có một cách khác, trực giao với các phương pháp được đề cập ở trên, nhưng nó có thể là một rủi ro bảo mật nếu người khác đang theo dõi màn hình của bạn, HOẶC nếu bạn đang lưu lịch sử của mình .
Tuy nhiên, đây là một tùy chọn, sẽ ngăn bạn khỏi bị nhắc, và một tùy chọn mà tôi sử dụng trong các hình ảnh docker vứt đi và như vậy ....
mysql -u YOUR_USER --password=YOUR_PASSWORD_HERE your_database -e "your query" etc.
Bạn sẽ không được nhắc, bạn có thể đặt bí danh tạm thời trong trình bao nếu bạn muốn.
Sử dụng cẩn thận.
mysql Ver 14,14 Phân phối 5.5.61-38.13, cho debian-linux-gnu (x86_64) bằng cách sử dụng readline 5.1