[Hướng dẫn] Fix lỗi “MySQL is running but PID file could not be found”

Tác giả: 30/09/2024

Mình thấy khá nhiều bạn dùng VPS và gặp phải lỗi MySQL không thể khởi động được nên khi truy cập vào website WordPress xuất hiện thông báo lỗi Error Establishing a Database Connection.

Khi kiểm tra service MySQL bạn cũng gặp phải thông báo tương tự như sau:

[root@vps mysql]# service mysql status

ERROR! MySQL is running but PID file could not be found

Nguyên nhân thì có rất nhiều, mình lúc đầu dành mấy tiếng đồng hồ mò mẫm fix các kiểu vẫn không được. Cuối cùng mới phát hiện ra vấn đề do ổ cứng bị Full, dẫn đến MySQL không thể tạo được file PID nên có thông báo lỗi kia.

[root@vps mysql]# df -h

Filesystem         Size  Used Avail Use% Mounted on
/dev/ploop23644p1   15G   15G     0 100% /
none               256M  4.0K  256M   1% /dev
none               256M     0  256M   0% /dev/shm
 

Nếu gặp vấn đề tương tự mình, đầu tiên bạn hãy check ngay dung lượng ổ cứng xem có vấn đề gì không nhé. Nếu bị full, hãy tham khảo bài viết tìm file có dung lượng lớn nhất và xóa bớt đi.

Trong trường hợp không phải vấn đề do hết ổ cứng, bạn thử tham khảo thêm hướng dẫn bên dưới. Mình tìm pid của process mysql đang chạy rồi kill nó đi.

[root@vps mysql]# ps aux | grep mysql
root      7766  0.2  0.3  11444  1640 pts/0    S    15:45   0:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql/ --pid-file=/var/lib/mysql//vpshostus.pid
mysql    11954  8.0 10.7 584184 56268 pts/0    Sl   15:47   0:00 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql/ --plugin-dir=/usr/lib64/mysql/plugin --user=mysql --log-error=/home/vpshostus.com/logs/mysql.log --open-files-limit=65536 --pid-file=/var/lib/mysql//vpshostus.pid --socket=/var/lib/mysql/mysql.sock
root     11974  0.0  0.1   6444   704 pts/0    S+   15:47   0:00 grep mysql

[root@vpshostus mysql]# kill -9 7766

[root@vps mysql]# ps aux | grep mysql
root     12081  0.0  0.1   6444   704 pts/0    S+   15:47   0:00 grep mysql
Tạo file PID tương ứng rồi restart lại MySQL
[root@vps backup]# > /var/lib/mysql/vpshostus.pid
[root@vps backup]# chown mysql:mysql /var/lib/mysql/vpshostus.pid
[root@vps backup]# service mysql restart
Shutting down MySQL. SUCCESS!
Starting MySQL.. SUCCESS!

Các bạn thử xem sao nhé.

Ngoài ra, nguyên nhân service MySQL tự động stop thường do server thiếu RAM. Do đó, bạn hãy tối ưu lại cache website, kích hoạt SWAP nếu chưa tạo, và cuối cùng nâng cấp RAM để hạn chế vấn đề này.

Chúc bạn thành công.