Trong quá trình di chuyển cơ sở dữ liệu database từ máy chủ cũ sang máy chủ mới và import vào. Bạn sẽ gặp một lỗi thông báo Unknown collation: utf8mb4_0900_ai_ci
như ảnh bên dưới.
Nguyên nhân chủ yêu và thường xảy ra nhất là do phiên bản MySQL/MariaDB của 2 máy chủ không giống nhau, nên khi import vào máy chủ mới collation ID không khớp.
Với lỗi này bạn có thể xử lý bằng 2 cách sau:
Cách 1: Thay đổi phiên bản MySQL/MariaDB
Với cách này bạn cần hạ hoặc nâng cấp phiên bản MySQL/MariaDB ở máy chủ mới sao cho cùng phiên bản với máy chủ cũ để giải quyết vấn đề. Tuy nhiên có một bất cập là việc thay đổi phiên bản rất phức tạp và nhà phát triển không cho phép bạn hạ cấp.
Bạn chỉ có thể gở bỏ và cài đặt mới lại. Và việc này sẽ gặp nhiều rủi ro với máy chủ đã và đang có webiste hoạt động.
Cách 2: Thay đổi nội dung bảng mã của Database
Cách này sẽ thay đổi CHARSET và COLLATE của database. Với cách này sẽ đơn giản nhiều hơn và rủi ro thấp hơn.
- Thay đổi
utf8mb4_0900_ai_ci
thànhutf8mb4_general_ci
- Thay đổi
CHARSET=utf8mb4
thànhCHARSET=utf8
Trên hệ thống Linux có một thế mạnh là bạn có thể thay đổi nội dụng của file với một dòng lệnh. Ở đây mình sử dụng lệnh sed
Chú thích:
- Lệnh 1: Sẽ tìm trong file
backup.sql
. Nếu có dòngutf8mb4_0900_ai_ci
sẽ tự động thay thế bằngutf8_general_ci
- Lệnh 2: Sẽ tìm trong file
backup.sql
. Nếu có dòngCHARSET=utf8mb4
sẽ tự động thay thế bằngCHARSET=utf8
Lưu ý: Thay backup.sql
bằng tên file database của bạn
Lệnh 1: sed -i 's/utf8mb4_0900_ai_ci/utf8_general_ci/g' backup.sql Lệnh 2: sed -i 's/CHARSET=utf8mb4/CHARSET=utf8/g' backup.sql
Sau khi chạy lệnh sửa xong. Bạn có thể sử dụng Database đó để import lại.
Chúc bạn thực hiện thành công.
Nếu các bạn cần hỗ trợ các bạn có thể liên hệ bộ phận hỗ trợ theo các cách bên dưới:
- Hotline 247: 028 888 24768 (Ext 0)
- Ticket/Email: Bạn dùng email đăng ký dịch vụ gửi trực tiếp về: support@azdigi.com.
- Tham khảo dịch vụ Hosting/VPS tại đây!