Bạn gặp lỗi "ERROR 1273 (HY000): Unknown collation: 'utf8mb4_0900_ai_ci'" khi import file .sql vào MariaDB trên Ubuntu? Đây là lỗi phổ biến khi dữ liệu được xuất từ MySQL 8.0 với collation không tương thích với MariaDB. Bài viết này sẽ hướng dẫn bạn cách xử lý lỗi nhanh chóng bằng công cụ dòng lệnh sed – không cần mở file thủ công – để sửa collation và import lại thành công vào cơ sở dữ liệu MariaDB.

❓ Nguyên nhân

Khi bạn export file SQL từ MySQL 8.x (trên server khác hoặc localhost) rồi import vào MariaDB trên Ubuntu, bạn có thể gặp lỗi:

ERROR 1273 (HY000) at line 419: Unknown collation: 'utf8mb4_0900_ai_ci'

Lý do là MariaDB không hỗ trợ collation utf8mb4_0900_ai_ci — vốn là collation mới chỉ có trong MySQL 8.0 trở lên.


✅ Cách khắc phục trên Ubuntu

Bước 1: Tìm và thay thế collation trong file .sql

Bạn sẽ cần sửa file .sql, thay utf8mb4_0900_ai_ci bằng một collation tương thích như utf8mb4_unicode_ci.

Cách 1: Dùng sed để thay thế nhanh (khuyên dùng)

Chạy lệnh sau trong Terminal:

sed 's/utf8mb4_0900_ai_ci/utf8mb4_unicode_ci/g' input.sql > fixed.sql

Ví dụ thực tế:

sed 's/utf8mb4_0900_ai_ci/utf8mb4_unicode_ci/g' ~/backup/shop.themestyle.net.sql > ~/backup/shop.themestyle.net-fixed.sql

Lệnh này sẽ tạo ra file mới: shop.themestyle.net-fixed.sql


Bước 2: Import lại file đã sửa vào MariaDB

Giả sử bạn đã có database tên là cms_themestyle, chạy lệnh:

mysql -u root -p cms_themestyle < ~/backup/shop.themestyle.net-fixed.sql
  • Nếu bạn dùng socket hoặc MariaDB chạy khác port, thêm các tuỳ chọn: mysql -u root -p --host=127.0.0.1 --port=3306 cms_themestyle < ...

📌 Mẹo phòng tránh

  • Khi export từ MySQL 8.x, nên chọn collation như utf8mb4_unicode_ci hoặc utf8mb4_general_ci nếu bạn định dùng với MariaDB.
  • Bạn có thể cấu hình mặc định collation trong my.cnf:
[mysqld]
collation-server = utf8mb4_unicode_ci
character-set-server = utf8mb4

Sau đó khởi động lại MariaDB bằng:

sudo systemctl restart mariadb

✅ Kết luận

Lỗi utf8mb4_0900_ai_ci là vấn đề phổ biến khi chuyển dữ liệu từ MySQL 8 sang MariaDB. Cách khắc phục đơn giản là thay collation không tương thích bằng collation chuẩn như utf8mb4_unicode_ci. Trên Ubuntu, bạn có thể dùng sed để sửa nhanh mà không cần mở file thủ công.