Bạn chưa chọn được cho mình giao diện phù hợp?

Hãy liên hệ với đội ngũ tư vấn để được hỗ trợ

Kiểm tra và tự khởi động lại MySQL khi quá tải trên VPS, Linux, aaPanel

5/5 - (8 bình chọn)

Đôi lúc bạn sẽ gặp tình huống dịch vụ MySQL thường xuyên bị treo hoặc báo lỗi “Error establishing a database connection”. 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 hoặc MySQL bị lỗi trong quá trình hoạt động. Thì đây là giải pháp cho bạn.

Kiểm tra và tự khởi động lại MySQL khi quá tải trên VPS, Linux, aaPanel
Kiểm tra và tự khởi động lại MySQL khi quá tải trên VPS, Linux, aaPanel

Kiểm tra và tự Khởi Động Lại MySQL Khi Quá Tải Trên Máy Chủ Linux

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 -

Tạo Script kiểm tra và tự Khởi Động Lại MySQL trên aaPanel

Trường hợp các bạn dang xài aaPanel vốn rất hay xảy ra lỗi quá tải MySQL các bạn có thể tạo scripts kiểm tra và khởi động lại bằng các dùng chức năng cron có sẵn như sau:

Tạo Script kiểm tra và tự Khởi Động Lại MySQL trên aaPanel
Tạo Script kiểm tra và tự Khởi Động Lại MySQL trên aaPanel

Thực hiện tạo Cron thông qua giao diện aaPanel

Truy cập vào aaPanel > Cron

Thêm đoạn bash shell bên dưới:

Với MySQL

if [ ! "$(systemctl status mysql.service | awk 'NR==3 {print $2}')" == "active" ]; then
/bin/systemctl start mysql.service
echo "MySQL đã khởi động thành công vào $(date)" >> /root/mysql-restart.log
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
echo "MySQL đã khởi động thành công vào $(date)" >> /root/mysql-restart.log
exit
fi
  • Type of Task: Chọn ShellScript
  • Name of Task: Đặt tên bất kỳ
  • Execution cycle: Chọn N Minutes (5 phút chạy cron 1 lần)
  • Script content: Nhập vào script được chỉ định ở trên.

Sau đó bấm vào Add task để thêm cron.

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.

 

Bấm vào Execute để chạy script sau đó vào Log để kiểm tra script đã chạy chưa? trường hợp đã chạy đúng các bạn sẽ thấy trong log có dòng thông báo “★[2024-10-26 11:25:01] Successful” thì đã thực hiện thành công, ngoài ra bạn có thể kiểm tra file log mysql-restart.log để xem nhật ký ghi lại.

 

Như vậy mình đã hướng dẫn các bạn chi tiết cách tạo Cron tự động kiểm tra trạng thái và khởi động lại Mysql nếu bị lỗi. Việc này giúp Website của bạn không bị gián đoạn quá lâu trong một số trường hợp các bạn không thể theo dõi máy chủ của mình 24/24. Hy vọng bài viết này hữu ích với các bạn, chúc các bạn thực hiện thành công.

Chúc các bạn thực hiện thành công!

Theo dõi
Thông báo của
guest

0 Góp ý
Cũ nhất
Mới nhất Được bỏ phiếu nhiều nhất
Phản hồi nội tuyến
Xem tất cả bình luận
Cảm ơn bạn đã quan tâm đến dịch vụ của REDX.Media

Vui lòng kiểm tra lại các thông tin chính xác.

Or let's talk now
Cảm ơn bạn đã quan tâm đến dịch vụ của REDX.Media

Vui lòng kiểm tra lại các thông tin chính xác.

Or let's talk now