MySQL tương đương với .pgpass hoặc xác thực tự động trong công việc định kỳ cho myQuery


8

Tôi đang viết một tập lệnh bash để sao lưu cơ sở dữ liệu của mình. Hầu hết là postgresql và trong postgres có một cách để tránh phải xác thực bằng cách tạo tệp ~ / .pgpass có chứa mật khẩu postgres. Tôi đặt nó trong thư mục gốc của root và làm cho nó chmod 0600, để root có thể kết xuất cơ sở dữ liệu postgres mà không cần phải xác thực. Bây giờ tôi muốn làm một cái gì đó tương tự cho mysql, mặc dù tôi chỉ có một cơ sở dữ liệu mysql. Tôi có thể làm cái này như thế nào? Tôi không muốn chỉ định mật khẩu trên dòng lệnh cho mysqldump vì đây là một phần của tập lệnh có thể hiển thị với người dùng khác. Có cách nào tốt hơn (tức là được tích hợp vào mysql) để làm điều này hơn là tạo một tệp mà chỉ root mới có thể đọc và sau đó đọc nó để lấy mật khẩu mysql, và sau đó sử dụng nó trong tập lệnh bash làm biến?


Hmm, thật kỳ lạ, tôi đã tìm thấy thứ gì đó đầy hứa hẹn thông qua google thay vì tìm kiếm riêng của serverfault: stackoverflow.com/questions/601995/ Kẻ
Ibrahim



Vâng, rõ ràng là thiếu tìm kiếm của tôi.
Ibrahim

Câu trả lời:


6

Tạo một ~/.my.cnftập tin cho người dùng đang chạy mysql. Nó nên chứa những điều sau đây:

[client]
user = root
password = yourpassword

Một điều tôi đoán thêm vào là nếu chạy tập lệnh bằng sudo, bạn cần sử dụng -H để đảm bảo rằng nó sử dụng thư mục gốc của root. Nhưng tôi nghĩ vấn đề đó không phải là một vấn đề trong công việc gốc, đúng không?
Ibrahim

3
Nhưng làm thế nào mà xử lý cho nhiều tài khoản? Điều đó sẽ làm việc cho localhost, nhưng nếu tôi muốn lưu trữ thông tin đăng nhập của mình cho một máy chủ từ xa thì sao?
Cerin
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.