Sửa lỗi “MySQL innodb checksum mismatch”
Khi bạn tìm thấy lỗi InnoDB: Error: checksum mismatch in data file ./ibdata1 (or ./ibdataX) tại mysql error log, điều đó có nghĩa là ibdata checksum không chính xác dẫn đến CSDL MySql của bạn bị crash không thể khởi động được.
Sau đây mình sẽ hướng dẫn xử lý lỗi trên, mình đã thử thực tế trên server Centos 7; Mariadb phiên bản mysqld 5.5.65-MariaDB
Cách xử lý lỗi checksum mismatch in data file ./ibdata1
Log hiển thị thông báo lỗi
Để kiểm tra lỗi bạn có thể sử dụng câu lệnh sau để kiểm tra:
~ $ innochecksum -d ibdata1
Cách xử lý lỗi
Đầu tiên bạn Mở file: /etc/my.cnf > thêm dòng
innodb_force_recovery = 4
Tiếp theo khởi động CSDL bằng câu lệnh
~ $ /etc/init.d/mysql start
Trong quá trình CSDL khởi động bạn xem log hệ thống và đợi khi CSDL Mysql khởi động hoàn thành. Log được hiển thị theo dạng như sau
Hoàn thành khôi phục sau đó cần thực hiện xóa hoặc comment lại cấu hình innodb_force_recovery trong /etc/my.cnf và tiến hành kill process mysql
~ $ killall -9 mysqld
Sau đó khởi động lại CSDL Mysql
~ $ /etc/init.d/mysql start
Các bước hoàn tất bạn đã khắc phục xong lỗi checksum mismatch in data file ./ibdata1