Khi bạn quản lý các máy chủ Linux với cơ sở dữ liệu, việc dịch vụ mysqld bị dừng đột ngột vì nhiều lý do khác nhau không phải là tình huống dễ chịu. Trong hướng dẫn này, bạn sẽ học cách tự động khởi động MySQL nếu nó dừng lại vì bất kỳ lý do nào, sử dụng một đoạn mã và crontab.
Vì lý do không xác định, đôi khi daemon mysqld đột ngột dừng lại mà không tự động khởi động lại vào một số giờ nhất định. Vì các bản ghi nhật ký của máy chủ không giúp tôi nhiều, tôi tìm kiếm một giải pháp để kiểm tra xem dịch vụ mysqld có đang chạy không, và trong trường hợp nó không hoạt động, khởi động lại nó thông qua crontab.
Nội dung
Làm thế nào để tự động khởi động MySQL nếu nó dừng lại? [Linux]
Trên các máy chủ MySQL với MariaDB, dịch vụ mysqld thường nên tự động khởi động khi nó dừng lại vì nhiều lý do khác nhau. Nếu điều này không xảy ra, đoạn mã dưới đây sẽ kiểm tra định kỳ xem daemon mysqld có đang chạy không và giúp bạn tự động khởi động MySQL nếu nó đã dừng lại.
Thử nghiệm của tôi được thực hiện trên hệ điều hành Debian 12, MariaDB 10.11.4.
1. Mở bảng điều khiển và tạo tệp cho tập lệnh trong tương lai sẽ khởi động dịch vụ mysqld nếu nó bị dừng.
Tôi thích sử dụng trình soạn thảo hơn"nano
".
sudo nano /usr/local/bin/autostart_mysql.sh
2. Trong tập tin mới “autostart_mysql.sh
” sao chép đoạn script bên dưới:
#!/bin/bash
if systemctl is-active mysqld > /dev/null; then
echo "The mysqld service is running."
else
echo "The mysqld service is not running. Restarting..."
systemctl start mysqld
fi
3. Lưu file mới “autostart_mysql.sh
“, sau đó đặt quyền thực thi.
chmod +x /usr/local/bin/autostart_mysql.sh
4. Điều hướng đến “/usr/local/bin/
” và kiểm tra tập lệnh bằng lệnh: “./autostart_mysql.sh
".
Ngay bây giờ, tập lệnh bạn đang bắt đầu MySQL tự động sẽ chỉ chạy khi được thực hiện thủ công. Đã thêm vào crontab, nó sẽ chạy định kỳ, vào khoảng thời gian do chúng tôi đặt ra. Tôi đã chọn kịch bản đó"autostart_mysql.sh
” được chạy 3 phút một lần.
Làm thế nào để thêm một đoạn mã vào crontab?
Để thêm tập lệnh vào crontab để chạy định kỳ, vào khoảng thời gian do bạn đặt, hãy chạy lệnh: crontab -e
, sau đó thêm dòng lệnh vào cuối tệp.
*/3 * * * * /usr/local/bin/autostart_mysql.sh
*/3
chỉ định rằng tập lệnh sẽ được thực thi cứ sau 3 phút.
Lưu crontab và thoát trình chỉnh sửa.
Sau bước này, hãy kiểm tra dịch vụ mysqld
nó sẽ được thực hiện 3 phút một lần và nếu dịch vụ bị dừng, nó sẽ tự động bắt đầu.
Nếu bạn cần trợ giúp hoặc giải thích rõ hơn, chúng tôi sẵn lòng trả lời nhận xét của bạn.