Cách bật lại Mysql – MariaDB trên VPS Linux Khi bị Treo
Mình có con VPS cùi mía 10$ Mua ở Vultr thỉnh thoảng hay bị treo, do mình đựng 10 con website WordPress trên đó, chắc là có 1 con bị dính virut lười chẳng muốn fix. Cách này giúp anh em tự động restart thằng Mysql
Lỗi khi WordPress không bật Mysql:
Error establishing a database connection
Cách làm như sau:
Tạo Crontab tự động khởi động (bật ) lại MySQL
Khi service MySQL bị stop trên VPS do quá tải hoặc thiếu RAM, ta sẽ dùng lệnh trên để bật lại. Ngoài ra, bạn có thể tạo một crontab tự động check MySQL nếu dịch vụ này đang bị stop thì tự động bật lại.
Trước tiên cần tạo một file đặt tên là auto-start-mysql chẳng hạn, ta đặt file này trong folder root hoặc folder tùy ý bạn chọn. Sau đó chmod file này bằng lệnh:
1.Tạo file SH
nano -w auto-start-mysql.sh
(Cách sử dụng Nano trên Linux bạn bấm Ctrl+O là ghi dữ liệu lên file, Ctrl+X là thoát, bạn copy lệnh theo hệ điều hành linux bên dưới rồi dùng lệnh nha)
Nội dung của file auto-start-mysql.sh như sau:
Trên VPS Centos
Centos 6:
if [ ! “$(/sbin/service mysql status | awk ‘NR==1 {print $3}’)” == “running” ]; then
service mysql start
/etc/init.d/mysql restart
exit
fi
Centos 7:
MySQL:
if [ ! “$(systemctl status mysql.service | awk ‘NR==3 {print $2}’)” == “active” ]; then
/bin/systemctl start mysql.service
exit
fi
MariaDB:
if [ ! “$(/bin/systemctl status mariadb.service | awk ‘NR==3 {print $2}’)” == “active” ]; then
systemctl start mariadb.service
exit
fi
Trên VPS Ubuntu
MySQL:
if [ ! “$(service mysql status | awk ‘NR==1 {print $2}’)” == “start/running,” ]; then
/etc/init.d/mysql start
exit
fi
MariaDB:
if [ “$(service mysql status | awk ‘NR==1 {print $4}’)” == “stopped.” ]; then
/etc/init.d/mysql start
exit
fi
2. Chmod
chmod +x /root/auto-start-mysql.sh
3. Thêm Cronjob
Để thêm vào VPS crontab tự động chạy auto-start-mysql 5 phút 1 lần ta dùng lệnh:
(crontab -u root -l ; echo “*/5 * * * * /root/auto-start-mysql.sh”) | crontab -u root –
Kiểm tra trạng thái dịch vụ cron có đang chạy không
# Trên CentOS systemctl status crond # Trên Ubuntu systemctl status cron
Kiểm tra các crontab
Các crontab (các tác vụ cần chạy theo lịch) được thiết lập chạy cho từng User, để liệt kê xem User hiện tại (đang login) có các crontab nào sử dụng lệnh sau
crontab -l
Chúc bạn thành công.