Bài viết này thực hiện (hoặc lụm bài về đăng câu like từ các trang khác) bởi Việt Lâm Coder một YOUTUBER có tâm và đẹp trai siêu cấp vô địch zũ trụ.
Với những VPS có RAM ít và bạn không rõ về config MySQL dẫn tới hiện tượng thi thoảng website quá tải và bị lỗi không thể kết nối tới database. Bài viết này sẽ hướng dẫn bạn cách khắc phục lỗi chết MySQL và tạo crontab tự động khởi động lại dịch vụ MySQL trên VPS/Server khi website bị hiển thị lỗi tương tự như dưới:
Error establishing a database connection
This either means that the username and password information in your
wp-config.php
file is incorrect or we can’t contact the database server atlocalhost
. This could mean your host’s database server is down.
- Are you sure you have the correct username and password?
- Are you sure that you have typed the correct hostname?
- Are you sure that the database server is running?
If you’re unsure what these terms mean you should probably contact your host. If you still need help you can always visit the WordPress Support Forums.
Lệnh bật lại dịch vụ MySQL
Trên VPS Centos
Centos 6 (MariaDB cũng dùng chung lệnh) :
1 |
service mysql start |
Hoặc:
1 |
/etc/init.d/mysql start |
Centos 7:
MySQL:
1 |
systemctl start mysql.service |
MariaDB:
1 |
systemctl start mariadb.service |
Trên VPS Ubuntu
1 |
/etc/init.d/mysql start |
Hoặc
1 |
/etc/init.d/mysqld start |
Tùy trường hợp cụ thể trên server của bạn là mysql hay mysqld mà bạn chọn lệnh.
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 |
chmod +x /root/auto-start-mysql |
Để thêm vào VPS crontab tự động chạy auto-start-mysql 5 phút 1 lần ta dùng lệnh:
1 |
(crontab -u root -l ; echo "*/5 * * * * /root/auto-start-mysql") | crontab -u root - |
Xem thêm: Thêm và xóa Crontab trong Cronjob bằng command
Nội dung của file auto-start-mysql như sau:
Trên VPS Centos
Centos 6:
1 2 3 4 5 |
if [ ! "$(/sbin/service mysql status | awk 'NR==1 {print $3}')" == "running" ]; then service mysql start /etc/init.d/mysql restart exit fi |
Nếu VPS của bạn dùng mysqld thay vì mysql thì thay bằng
1 2 3 4 5 |
if [ ! "$(/sbin/service mysqld status | awk 'NR==1 {print $3}')" == "running" ]; then service mysqld start /etc/init.d/mysqld restart exit fi |
Centos 7:
MySQL:
1 2 3 4 |
if [ ! "$(systemctl status mysql.service | awk 'NR==3 {print $2}')" == "active" ]; then /bin/systemctl start mysql.service exit fi |
MariaDB:
1 2 3 4 |
if [ ! "$(/bin/systemctl status mariadb.service | awk 'NR==3 {print $2}')" == "active" ]; then systemctl start mariadb.service exit fi |
Trên VPS Ubuntu
MySQL:
1 2 3 4 |
if [ ! "$(service mysql status | awk 'NR==1 {print $2}')" == "start/running," ]; then /etc/init.d/mysql start exit fi |
1 2 3 4 |
if [ "$(service mysql status | awk 'NR==1 {print $4}')" == "stopped." ]; then /etc/init.d/mysql start exit fi |
Bài viết này thực hiện (hoặc lụm bài về đăng câu like từ các trang khác) bởi Việt Lâm Coder một YOUTUBER có tâm và đẹp trai siêu cấp vô địch zũ trụ.