Mục lục
- 1 XỬ LÝ 7 LỖI MYSQL PHỔ BIẾN TRÊN VPS/SERVER
- 1.1 Lỗi “mysqld dead but subsys locked”
- 1.2 Lỗi “ERROR 2006 (HY000): MySQL server has gone away”
- 1.3 Lỗi “InnoDB: Error: log file ./ib_logfile0 is of different size”
- 1.4 Lỗi “MySQL is running but PID file could not be found”
- 1.5 Lỗi “Unable to connect to database: Too many connections”
- 1.6 Lỗi “Can’t connect to local MySQL server through socket…”
- 1.7 Lỗi “mySQL error: Got error 28 from table handler”
- 2 Lời kết từ Zhost

XỬ LÝ 7 LỖI MYSQL PHỔ BIẾN TRÊN VPS/SERVER
MySQL là “linh hồn” của website, nhưng đôi khi nó cũng “đổ bệnh”. Việc nắm vững cách xử lý các mã lỗi phổ biến sẽ giúp bạn tiết kiệm hàng giờ chờ đợi hỗ trợ kỹ thuật. Dưới đây là hướng dẫn chi tiết từ đội ngũ kỹ thuật Zhost.
Lỗi “mysqld dead but subsys locked”
Hiện tượng: MySQL bỗng dưng “đột tử” và không thể khởi động lại. Khi kiểm tra trạng thái bằng lệnh service mysqld status, bạn nhận được thông báo lỗi đầy ám ảnh này.
Cách khắc phục:
-
Bước 1: Sao lưu tệp khóa cũ vào thư mục root để đảm bảo an toàn:
cp /var/lock/subsys/mysql /root/mysqld -
Bước 2: Xóa tệp khóa đang gây tắc nghẽn hệ thống:
m -f /var/lock/subsys/mysqld -
Bước 3: Khởi động lại các dịch vụ liên quan:
service httpd stop service mysql restart service httpd restart
Lỗi “ERROR 2006 (HY000): MySQL server has gone away”
Hiện tượng: Xảy ra khi bạn đang import database hoặc chạy câu lệnh SQL quá nặng. MySQL “từ chối” tiếp tục vì kích thước gói dữ liệu vượt quá giới hạn cấu hình.
Cách khắc phục: Nâng mức giới hạn truyền tải dữ liệu.
-
Mở tệp cấu hình:
vi /etc/my.cnf -
Thêm hoặc sửa dòng sau:
max_allowed_packet=500M -
Restart MySQL:
service mysql restart
Lỗi “InnoDB: Error: log file ./ib_logfile0 is of different size”
Hiện tượng: Lỗi này thường xuất hiện sau khi bạn thay đổi thông số innodb_log_file_size nhưng tệp nhật ký cũ (logfile) vẫn tồn tại với kích thước cũ, khiến MySQL không thể đồng bộ.
Cách khắc phục:
-
Truy cập MySQL và ép hệ thống dọn dẹp dữ liệu tạm:
SET GLOBAL innodb_fast_shutdown=0; -
Tắt dịch vụ:
service mysql stop -
Cập nhật kích thước mới trong
my.cnf(Ví dụ:innodb_log_file_size = 256M). -
Quan trọng: Xóa các file log cũ để MySQL tự tạo lại:
rm -f /var/lib/mysql/ib_logfile* -
Khởi động lại:
service mysql start
Lỗi “MySQL is running but PID file could not be found”
Hiện tượng: MySQL vẫn chạy nhưng hệ thống “mất dấu” mã định danh (PID), dẫn đến việc bạn không thể tắt hay restart dịch vụ một cách bình thường.
Cách khắc phục: * Thực hiện tạo lại thư mục và cấp quyền cho user mysql: bash mkdir /var/run/mysql chown mysql:mysql /var/run/mysql
-
Nếu vẫn lỗi, hãy dùng “biện pháp mạnh” để dọn dẹp các tiến trình đang chạy ngầm:
pidof mysql kill -9 [ID-vừa-tìm-thấy] service mysql restart
Lỗi “Unable to connect to database: Too many connections”
Hiện tượng: Website báo lỗi kết nối database vì số lượng người truy cập cùng lúc vượt quá giới hạn mà server cho phép.
Cách khắc phục: Tăng giới hạn kết nối trong file my.cnf.
max_connections = 1024max_user_connections = 50
Lưu ý: Đừng đặt quá lớn nếu RAM của bạn có hạn, vì mỗi kết nối đều tiêu tốn một lượng RAM nhất định.
Lỗi “Can’t connect to local MySQL server through socket…”
Hiện tượng: MySQL không tìm thấy file .sock (điểm kết nối giữa ứng dụng và database).
Cách khắc phục:
-
Tìm vị trí chính xác của file socket:
find / -name mysql.sock -
Chỉnh sửa lại đường dẫn trong
my.cnf:socket=/var/lib/mysql/mysql.sock -
Cấp quyền tối đa cho thư mục chứa socket:
chmod -R 777 /var/lib/mysql/
Lỗi “mySQL error: Got error 28 from table handler”
Hiện tượng: Đây là lỗi “hết hơi”. Ổ cứng của bạn hoặc phân vùng chứa thư mục tạm (/tmp) đã bị đầy 100%, khiến MySQL không còn chỗ để ghi dữ liệu.
Cách khắc phục:
-
Kiểm tra dung lượng:
df -h -
Dọn dẹp rác hệ thống và các file log cũ:
rm -rf /tmp/* echo '' > /var/log/mysqld.log -
Cân nhắc nâng cấp dung lượng ổ cứng tại Zhost nếu website phát triển nhanh.
Lời kết từ Zhost
Việc quản trị Database đòi hỏi sự cẩn trọng. Trước khi thực hiện bất kỳ thay đổi nào trong file my.cnf, hãy luôn nhớ Backup lại dữ liệu.
