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@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 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@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!

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.

Comment của bạn

Lưu ý: tất cả comment đều được kiểm duyệt cẩn thận! Nếu có code bạn hãy up lên pastebin.com rồi để lại link trong comment.

25 Comments

  1. tu 52 comment

    mình bị lỗi khi chạy lệnh:
    service mysql reload
    ERROR! MariaDB PID file could not be found!

    mình bị báo lỗi tương tự và sửa thủ công theo cách sau:
    1. vào thư mục /var/lib/mysql và tìm file TEN_FILE_TUY_VPS.err rồi mở ra đọc thấy dòng cuối cùng ghi như này:
    200513 23:37:07 mysqld_safe mysqld from pid file /var/lib/mysql/vps176112.vps.ovh.ca.pid ended

    2. mình tạo file trắng mới có tên đúng theo dòng cuối là : /var/lib/mysql/vps176112.vps.ovh.ca.pid

    3. sau đó chạy lại 2 câu lệnh:
    chown mysql:mysql /var/lib/mysql/vps176112.vps.ovh.ca.pid
    service mysql restart

    các bạn thử theo cách của mình xem có được không, có gì comment lại cách mà bạn sửa được để người sau làm theo nhé

  2. Nam Võ 1 comment

    e đang gặp lỗi này mà service mysql restart mãi k được các bác cho e xin cách fix lỗi này với ạ.
    ERROR! MariaDB server PID file could not be found!
    Starting MariaDB.210721 05:46:24 mysqld_safe Logging to ‘/home/google.com/logs/mysql.log’.
    210721 05:46:24 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql/
    /usr/bin/mysqld_safe_helper: Can’t create/write to file ‘/home/google.com/logs/mysql.log’ (Errcode: 13)
    /etc/init.d/mysql: line 265: kill: (22169) – No such process
    ERROR!

  3. Bàng 10 comment

    VPS VULTR tự dưng bị lỗi không truy cập db

    Mình có stop, start, restart mã vẫn không được
    ———————————————————————
    [root@vps_panpic home]# sudo service mysql restart
    ERROR! MariaDB server PID file could not be found!
    Starting MariaDB.200719 09:00:26 mysqld_safe Logging to ‘/home/panpic.com.vn/logs/mysql.log’.
    200719 09:00:26 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
    /etc/init.d/mysql: line 260: kill: (9035) – No such process
    ———————————————————————
    Nhờ Admin & các bác chỉ dẫn giúp ?

    1. Luân Trần Admin

      Bạn xóa mất thư mục của tên miền gốc rồi, tạo lại thư mục đó và đường dẫn chứa file logs nhé

      1. Bàng 10 comment

        Hi bác Luan

        Ý bác là folder: /home/panpic.com.vn/logs/mysql.log
        + Folder & file log vẫn còn đầy đủ cũng đã chmod -R 777 cho nó luôn mà vẫn chưa được.
        + Còn ý nào khác không bác?

  4. Tuấn Khôi 2 comment

    MariaDB chua khoi dong hoac co the bi loi khong the khoi dong!!!
    Vui long kiem tra lai.
    Lỗi khi tạo db trong hocvps, web vẫn chạy được, phpmyadmin vẫn vào db được?

  5. Tuấn Khôi 2 comment

    Làm sao để cài lại mysql với hocvps. Mình bị lỗi mysql vẫn chạy được nhưng trong hocvps thì báo lỗi khi thêm database.

  6. Phong 11 comment

    mình làm mất file pid trong “/var/lib/mysql/xx.pid” trên host của mình rồi không thể khởi động lại được, giờ có cách nào cứu giữ liệu không ạ, mình chưa backup.

    1. Việt Phương Moderator

      Bạn có thể tạo file pid rồi restart lại MySQL như trong bài viết hướng dẫn nhé

    1. Việt Phương Moderator

      User root có full quyền bạn à. Còn sửa sở hữu là chown, sửa quyền là chmod

  7. truongtuongtu 9 comment

    [root@ezshirt home]# free -m
    total used free shared buffers cached
    Mem: 996 208 787 23 34 80
    -/+ buffers/cache: 93 902
    Swap: 2047 0 2047

    Filesystem Size Used Avail Use% Mounted on
    /dev/vda1 20G 11G 8.5G 55% /
    tmpfs 499M 0 499M 0% /dev/shm
    [root@ezshirt home]#

    Xem vẫn trống nhiều mà bác

          1. Việt Phương Moderator

            MySQL không thể start do không có quyền ghi/tạo trong thư mục log. Mình set quyền rồi start mysql rồi nhé

      1. manh vuong 13 comment

        anh Phương ơi. hộ em phát. em cũng bị lỗi này ạ. skype: vn9xvn
        em cám ơn anh rất nhiều

  8. truongtuongtu 9 comment

    [root@ezshirt home]# service mysql restart
    ERROR! MySQL server PID file could not be found!
    Starting MySQL.170301 15:54:45 mysqld_safe Logging to ‘/home/ezshirt.net/logs/mysql.log’.
    170301 15:54:45 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql/
    /usr/bin/mysqld_safe_helper: Can’t create/write to file ‘/home/ezshirt.net/logs/mysql.log’ (Errcode: 13)
    ERROR!
    Tự dưng web bị Error establishing a database connection vào check ko khởi động được mysql mà làm theo bác hướng dẫn không dược luôn bác Luân ơi. Cứ em với

    1. Kien 1 comment

      Bạn set lại file Log của mysql thành 777 rồi khởi động lại mysql là đc nhé.

      Mình bị lỗi này và đã tự fix đc bằng cách đơn giản đó, vậy mà nhờ kỹ thật vủa VPS cả ngày không xong :3

  9. Quoc Anh 1 comment

    Hi Luân,
    Mình dùng cùng 1 cấu hình cho 2 VPS của Vultr cùng chạy WordPress nhưng chạy Nginx cùng hocvps script thì hay bị lỗi này “Error Establishing a Database Connection.” mình restart mysql được 1 thời gian lại bị.
    Nhưng bên dùng Apache thì không bị. Bạn có cách nào chữa dứt điểm được cái này với Nginx không.

    Cảm ơn bạn

  10. unknown 1 comment

    Bạn ơi cho mình hỏi là hiện tại bên bạn có sử dụng git để quản lý source code không. Nếu dùng thì làm cách nào để deploy tự động mỗi lần có push từ git tới server. Hoặc nếu không bên bạn có cách nào khác thì chỉ mình nhé 🙂
    Nếu bạn có bài viết nào về chủ đề này rồi thì bảo mình với. Thanks !