Người dùng thường gặp thông báo "Error: MySQL shutdown unexpectedly" khi khởi động MySQL qua XAMPP Control Panel. Nguyên nhân thường do file dữ liệu MySQL bị hỏng, nhưng dữ liệu thực tế thường vẫn an toàn. Việc xóa file ibdata1 có thể sửa lỗi nhưng rủi ro làm hỏng database, nên không khuyến khích nếu bạn quan tâm đến dữ liệu.

Giải pháp an toàn nhất là sử dụng thư mục backup có sẵn trong thư mục mysql để khôi phục.
Sử dụng thư mục Backup MySQL
Thư mục backup đi kèm XAMPP chứa bản sao sạch của dữ liệu hệ thống. Thay thế thư mục data hiện tại bằng backup và copy lại database của bạn.
- Tắt hoàn toàn XAMPP.
- Mở thư mục cài đặt XAMPP (mặc định: C:\xampp).
- Vào thư mục mysql.
- Đổi tên thư mục data thành data_old.
- Tạo thư mục data mới.
- Copy toàn bộ nội dung từ thư mục backup vào thư mục data mới.
- Từ data_old, copy các thư mục database của bạn (bỏ qua mysql, performance_schema, phpmyadmin) vào thư mục data mới.
- Copy file ibdata1 từ data_old ghi đè lên file trong data mới.
- Chạy XAMPP với quyền Administrator và khởi động MySQL để kiểm tra.
Sửa chữa Database MySQL bằng Shell
Cách tiếp cận dòng lệnh cho người quen thuộc với Shell.
- Mở XAMPP Control Panel, nhấn nút Shell.
- Trong Shell, chạy:
mysqld --console --skip-grant-tables --skip-external-locking
- Mở một Shell thứ hai, chạy:
mysqlcheck -r --databases mysql --use-frm
- Dừng MySQL ở Shell đầu tiên, đóng cả hai cửa sổ Shell.
- Khởi động lại MySQL từ Control Panel.
Dừng dịch vụ MySQL
Nếu dịch vụ MySQL của Windows đang chạy, nó xung đột với MySQL của XAMPP.
- Windows + R → services.msc → Enter.
- Tìm dịch vụ MySQL, chuột phải chọn Stop.
- Thử khởi động MySQL từ XAMPP Control Panel.
Thay đổi cổng Client và Server
Xung đột cổng (thường là 3306) cũng gây lỗi. Sửa file my.ini.
- Mở C:\xampp\mysql\bin\my.ini bằng Notepad.
- Tìm mục [client] và [mysqld], thay đổi giá trị port (ví dụ: 3307).
- Lưu file và khởi động lại XAMPP.