Tự khởi động lại MySQL khi quá tải trên máy chủ Linux

Đôi lúc bạn sẽ gặp tình huống dịch vụ MySQL thường xuyên bị treo, mà nguyên nhân là do tài nguyên máy chủ của bạn không đủ đáp ứng, nhưng việc nâng cấp chưa thực sự là cần thiết. Thì đây là giải pháp cho bạn:

Bước 1: Tạo file script

Chạy lần lượt các lệnh sau:

cd /root
mkdir auto
cd auto
nano -w auto-mysql.sh

(Nếu máy chủ bạn chưa có công cụ Nano bạn vui lòng chạy lệnh cài đặt #yum install nano -y)

Bước 2: Dán đoạn code sau vào file auto-mysql.sh

Nếu bạn đang sử dụng MySQL:

if [ ! "$(systemctl status mysql.service | awk 'NR==3 {print $2}')" == "active" ]; then
/bin/systemctl start mysql.service
exit
fi

Nếu bạn đang sử dụng MariaDB:

if [ ! "$(/bin/systemctl status mariadb.service | awk 'NR==3 {print $2}')" == "active" ]; then
systemctl start mariadb.service
exit
fi

Bước 3: Chạy lệnh phân quyền cho file auto-mysql.sh

#chmod +x /root/auto/auto-mysql.sh

Bước 4: Đặt thời gian hệ thống tự check trạng thái MySQL và tự động start nếu MySQL không hoạt động

Ví dụ: Bạn muốn 5 phút hệ thống kiểm tra 1 lần

#(crontab -u root -l ; echo "*/5 * * * * /root/auto/auto-mysql.sh") | crontab -u root -

Lưu ý:
Với lệnh Cronjob bạn không nên đặt thời gian quá ngắn (dưới 5 phút) điều này sẽ dẫn đến quá tải tài nguyên và lỗi hệ thống.

Chúc bạn thành công !


27/05/2020


Thông tin tác giả


Bài viết liên quan