Điểm:-1

Chạy bash shell bằng mật khẩu với công việc định kỳ

lá cờ cn

Tôi có bash shell để sao lưu cơ sở dữ liệu yêu cầu mật khẩu để mở. Tôi muốn chạy trên một công việc định kỳ, nhưng làm cách nào để nó chạy tự động mà không cần điền mật khẩu cơ sở dữ liệu?

phiên bản máy chủ Ubuntu: 20.04.3 Phiên bản mysql: 8.0.26

Lệnh tôi đã thử: mysqldump -u root -p "dbname"> backupname.sql khi tôi nhấn enter, hệ thống yêu cầu nhập mật khẩu. khi tôi gỡ bỏ -P, lỗi xảy ra.

David avatar
lá cờ cn
Kịch bản trông như thế nào?
lá cờ cn
Ray
[Điều này](https://dba.stackexchange.com/questions/72417/credentials-file-for-running-mysql-relative-jobs-via-script) có giúp được gì không?
lá cờ in
Nếu bạn đang sử dụng MySQL trên phiên bản Ubuntu hiện đại và bạn không cố ý ghi đè cơ chế cấp quyền của phần mềm, thì bạn không cần cung cấp mật khẩu khi thực hiện sao lưu qua `mysqldump`. Tài khoản hệ thống `root` sẽ kết nối với tài khoản MySQL `root` mà không cần mật khẩu, vì đây là một phần của quản trị
Rendiero avatar
lá cờ cn
@David Tôi chưa viết lệnh vì tôi muốn biết cách thực hiện trước
Rendiero avatar
lá cờ cn
@Ray có vẻ như nhập mật khẩu người dùng, không phải mật khẩu cơ sở dữ liệu mysql
Rendiero avatar
lá cờ cn
@matigo Tôi đã thử, nhưng hệ thống yêu cầu nhập mật khẩu cơ sở dữ liệu mysql
lá cờ in
Vui lòng [chỉnh sửa] câu hỏi của bạn để trả lời những câu hỏi sau: (1) Bạn đang chạy phiên bản Ubuntu nào? (2) Bạn đang chạy phiên bản MySQL nào? (3) Bạn đã thử *chính xác* điều gì? (với các mẫu mã) â Cho đến khi ba câu hỏi này được trả lời, hầu như không ai có thể đưa ra bất kỳ loại giải pháp nào.
Rendiero avatar
lá cờ cn
@matigo Mình đã sửa rồi, bạn giúp được không?
Điểm:0
lá cờ in

Về cơ bản, bạn có thể thêm những điều sau vào bạn my.cnftập tin

[mysqldump]
người dùng = mysqluser
mật khẩu = bí mật

Ngoài ra, bạn có thể xuất nội dung sau trước khi gọi mysqldump

MYSQL_PWD=mật khẩu rất bí mật của bạn

Sử dụng -P tham số như bạn đã cố gắng không được khuyến khích vì lý do bảo mật.

Thông tin thêm và các giải pháp mở rộng trên https://stackoverflow.com/questions/9293042/how-to-perform-a-mysqldump-without-a-password-prompt

Điểm:0
lá cờ in

Để sử dụng mysqldump với nguồn gốc tài khoản MySQL, bạn sẽ cần thêm tiền tố vào lệnh của mình bằng sudo:

sudo mysqldump database_name > backup.sql

Nếu bạn muốn chạy cái này thông qua một công việc định kỳ, thì bạn có thể làm một cái gì đó như thế này:

0 3 * * * mysqldump database_name > /path/to/backups/backup.sql

Ngoài ra, nếu bạn muốn nén bản sao lưu đó và có tên tệp chứa ngày tháng, bạn có thể thực hiện như sau:

0 3 * * * mysqldump database_name | gzip > /path/to/backups/backup_$(date +\%Y-\%m-\%d).gz

Hãy chắc chắn bao gồm những điều cần thiết --routines--gây nên tùy chọn trong của bạn mysqldump lệnh nếu cơ sở dữ liệu của bạn chứa các thủ tục hoặc trình kích hoạt được lưu trữ.

Rendiero avatar
lá cờ cn
Cảm ơn bạn, tôi sẽ cố gắng.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.