Home / Tôi làm / Cách bật lại Mysql – MariaDB trên VPS Linux Khi bị Treo

Cách bật lại Mysql – MariaDB trên VPS Linux Khi bị Treo

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.

About Đỗ Mạnh Hùng

Tôi quê tại Thanh Hà, Hải Dương (Quê hương gốc của Vải Thiều), đam mê về công nghệ và marketing online. Thích chia sẻ, tính hình hài hước

Bạn quan tâm

Di chuyển website từ VPS sang Hosting bằng 1 file PHP

Di chuyển website wordpress từ VPS sang Hosting bằng 1 file PHP, thường thì anh …

>