Fix Lỗi MySQL is running but PID file could not be found Trên VPS

Mội ngày đẹp trời nào đó bạn vào website của bạn những trên web lại hiện những lỗi kết nối sql bla bla… và bạn hốt hoảng lên không biết chuyện gì đang xảy ra.

Thường thì trong trường hợp này việc đầu tiên là các bạn đăng nhập ngay vào vps và các bạn restart lại ngay dịch vụ mysql nhưng bạn lại nhận được thông báo “MySQL is running but PID file could not be found”, thế là bạn lại restart lại VPS, nếu bạn may mắn thì có thể sẽ chạy được web nhưng một thời gian ngắn không quá 1 ngày lại bị lỗi lại.

[root@netsa mysql]# service mysql status  ERROR! MySQL is running but PID file could not be found

Mình đã từng bị lỗi này vài lần, một lúc lay hoay đi tìm nguyên nhân thì mình đã phát hiện ra nguyên nhân đó là bị full ổ cứng, đây là nguyên nhân chính trong hầu hết các nguyên nhân gây ra lỗi này, bao gồm các yếu tố sau đây:

  • file backup quá nhiều
  • file log quá nhiều, quá lớn ( có lần mình bị file log > 10Gb )
[root@netsa 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

như trong ví dụ trên mình dùng câu lệnh “df -h” để kiểm tra dung lượng của ổ cứng thì phần “Use%” đã dùng hết 100% nên mysql không thể tạo được pid file nên gây ra hiện tượng lỗi trên.

Trong trường hợp bị lỗi MySQL is running but PID file could not be found này việc cần làm là bạn tìm file có dung lượng lớn nhất để xóa đi.

Nếu trong trường hợp lỗi không phải do full ổ cứng thì việc tiếp theo là bạn tìm pid của process mysql đang chạy rồi kill nó đi.

[root@netsa 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@netsa mysql]# kill -9 7766    [root@netsa 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@netsa backup]# > /var/lib/mysql/netsa .pid  [root@netsa backup]# chown mysql:mysql /var/lib/mysql/netsa .pid  [root@netsa backup]# service mysql restart  Shutting down MySQL. SUCCESS!  Starting MySQL.. SUCCESS!

Ngoài 2 nguyên nhân trên còn một số nguyên nhân khác như: thiếu ram… nên các bạn cần tối ưu Ram, bật Swap, nâng cấp Ram.

Chúc các bạn thành công !