TỰ ĐỘNG KHỞI ĐỘNG LẠI MYSQL, PHP-FPM, NGINX KHI GẶP SỰ CỐ

Tự khởi động lại các dịch vụ MySQL, PHP-FPM, Nginx khi website sập. Nghe hay nhỉ, đỡ thời gian chết không đáng có.

Trong quá trình hoạt động của server nếu MySQL bị crash và service bị dừng thì website của bạn sẽ bị lỗi. Điều này gây ảnh hưởng nghiêm trọng tới người dùng nếu không sớm được khắc phục.

Do đó trong bài viết này, mình sẽ hướng dẫn các bạn tự động khởi động lại MySQL Server nếu service bị dừng, đảm bảo server hoạt động liên tục.

1. Nguyên nhân MySQL bị dừng

Với các website sử dụng MySQL là nơi lưu trữ dữ liệu, chắc chắn một điều là nếu MySQL không hoạt động, thì website của bạn chắc chắn sẽ bị lỗi, và người dùng không thể sử dụng website của bạn một cách bình thường. Càng khắc phục sớm thì thiệt hại càng nhỏ. Do đó chúng ta cần phải kiểm tra tự động, nếu service của MySQL bị dừng thì cần khởi động lại ngay lập tức hoặc gửi cảnh báo tới người quản trị website.

Nguyên nhân MySQL bị dừng thì rất đa dạng, có thể do lượng truy cập quá lớn, do hết bộ nhớ, do query lỗi….

2. Tự động bật MySQL

Như vậy để đảm bảo Server/VPS hoạt động liên tục thì ta phải kiểm tra xem MySQL có hoạt động bình thường hay không, nếu không thì cần restart lại service.

Bài viết sẽ minh hoạ cho cơ sở dữ liệu MySQL trên hệ điều hành Centos, tuy nhiên bạn có thể hoàn toàn áp dụng tương tự với MariaDB và trên các hệ điều hành khác như Ubuntu, Debian…

Cách 1. Sử dụng lệnh

Cách này rất đơn giản, chúng ta chạy một câu lệnh để kiểm tra xem MySQL có hoạt động bình thường không, nếu không thì chạy restart

Để Server có thể check liên tục thì chúng ta sẽ đưa lệnh này vào trong cronjob

Mỗi phút kiểm tra một lần (bạn có thể thay đổi thời gian check tuỳ theo nhu cầu)

Tương tự cho MariaDB

Với Ubuntu Server

Cách 2. Sử dụng Bash Script

Cách này tương tự như cách trên, nhưng phức tạp hơn xíu là chúng ta sẽ viết một file script, để check và restart MySQL, sau đó chạy bash này trong cronjob

Di chuyển đến thư mục home

Tạo một thư mục mới gọi là scripts

Di chuyển tới thư mục này

Tạo một file mới là mysqlmon.sh bạn có thể dùng trình soạn thảo sẵn có, ví dụ nano

Dán nội dung như sau với Centos

Nếu là Ubuntu

Tiến hành lưu file (ấn CTRL + X, ấn Y sau đó ấn ENTER)

Cấp quyền thực thi cho file.

Kiểm tra xem script đã hoạt động đúng hay chưa

Chạy thử

Nếu MySQL đang chạy bình thường, sẽ có thông báo:

Thử mô phỏng hiện tương MySQL bị dừng bằng cách chạy lênh stop

Giờ test lại script

Kết quả sẽ là:

Bước cuối cùng là chạy script trong cronjob

Dán đoạn lệnh sau vào cuối file

Lưu lại (nhấn CTRL + X, nhấn Y và nhấn ENTER)

Như vậy server sẽ check mỗi phút một lần và khởi động lại MySQL nếu bị dừng


Từ khoá: auto start mysql if stop, Script to Auto Restart MySQL, auto restart mysql if crash, auto restart Mysql bash, centos, ubuntu, vps