I Tìm Hiểu
Lỗi ERROR 1273 (HY000): Unknown collation: 'utf8mb4_0900_ai_ci' thường xảy ra khi bạn cố gắng nhập hoặc tương tác với cơ sở dữ liệu MySQL sử dụng một collation hoặc bộ ký tự không được phiên bản MySQL hiện tại của bạn hỗ trợ.
Collation utf8mb4_0900_ai_ci chỉ có ở MySQL 8.0 và các phiên bản mới hơn. Nếu bạn đang sử dụng phiên bản MySQL cũ hơn, bạn sẽ gặp lỗi này vì các phiên bản đó không nhận diện được collation này.
Giải pháp:
- Nâng cấp MySQL: Xem xét việc nâng cấp lên MySQL 8.0 hoặc phiên bản mới hơn, vì các phiên bản này hỗ trợ collation utf8mb4_0900_ai_ci.
- Chỉnh sửa tập tin SQL Dump:
- Mở tập tin SQL dump và tìm kiếm utf8mb4_0900_ai_ci.
- Thay thế nó bằng một collation được phiên bản MySQL hiện tại của bạn hỗ trợ. Ví dụ, utf8mb4_general_ci là một collation thường được các phiên bản MySQL trước 8.0 hỗ trợ.
- Hãy cẩn thận với cách này vì nó có thể ảnh hưởng đến cách sắp xếp và so sánh dữ liệu của bạn.
- Kiểm tra tính tương thích: Đảm bảo rằng cơ sở dữ liệu và collation bạn đang cố gắng sử dụng tương thích với phiên bản MySQL của bạn.
SQL:
sed -i 's/utf8mb4_0900_ai_ci/utf8_general_ci/g' joomla5.sql
sed -i 's/CHARSET=utf8mb4/CHARSET=utf8/g' joomla5.sql
ERROR 1253 (42000) at line 31: COLLATION 'utf8mb4_unicode_ci' is not valid for CHARACTER SET 'utf8mb3'
Lỗi ERROR 1253 (42000): COLLATION 'utf8mb4_unicode_ci' is not valid for CHARACTER SET 'utf8mb3' xảy ra khi có sự không tương thích giữa bộ ký tự và collation trong cơ sở dữ liệu của bạn.
Cụ thể, utf8mb4_unicode_ci là một collation dành cho bộ ký tự utf8mb4, trong khi utf8mb3 (trước đây gọi là utf8) không hỗ trợ collation này.
Giải pháp:
- Sửa Tập tin SQL Dump:
- Mở tập tin SQL dump của bạn và tìm tất cả các trường hợp của utf8mb4_unicode_ci.
- Thay thế chúng bằng một collation hợp lệ cho bộ ký tự utf8mb3, chẳng hạn như utf8_general_ci hoặc utf8_unicode_ci.
- Chuyển Đổi Bộ Ký Tự:
- Nếu bạn muốn giữ collation utf8mb4_unicode_ci, bạn cần phải chuyển đổi bộ ký tự của cơ sở dữ liệu từ utf8mb3 sang utf8mb4.
- Ví dụ, bạn có thể sử dụng lệnh SQL để thay đổi bộ ký tự và collation của cơ sở dữ liệu:
SQL:ALTER DATABASE your_database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
- Sau đó, bạn cần đảm bảo rằng các bảng và cột cũng được chuyển đổi:
SQL:ALTER TABLE your_table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
- Kiểm Tra và Sửa Cấu Hình:
- Kiểm tra cấu hình cơ sở dữ liệu của bạn để đảm bảo rằng bộ ký tự và collation được thiết lập đúng cách và tương thích.
Bash:
sed 's/utf8mb4_0900_ai_ci/utf8_general_ci/g;s/utf8mb4/utf8/g' joomla5.sql > joomla5-new.sql
Sau thực hiện thành công import lại bằng lệnh sẽ thành công