Khi kiểm tra service MySQL bạn cũng gặp phải thông báo tương tự như sau:
- [root@vpshostus 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@vpshostus 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 tìm 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@vpshostus 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@vpshostus 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@vpshostus backup]# > /var/lib/mysql/vpshostus.pid
[root@vpshostus backup]# chown mysql:mysql /var/lib/mysql/vpshostus.pid
[root@vpshostus backup]# service mysql restart
Shutting down MySQL. SUCCESS!
Starting MySQL.. SUCCESS!
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 cho VPS để hạn chế vấn đề này.