Hướng dẫn mysql utf8mb4_0900_ai_ci error - lỗi mysql utf8mb4_0900_ai_ci

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.

Hướng dẫn mysql utf8mb4_0900_ai_ci error - lỗi mysql utf8mb4_0900_ai_ci

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. CHARSETCOLLATE 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ành utf8mb4_general_ci
  • Thay đổi CHARSET=utf8mb4 thành CHARSET=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òng utf8mb4_0900_ai_ci sẽ tự động thay thế bằng utf8_general_ci
  • Lệnh 2: Sẽ tìm trong file backup.sql. Nếu có dòng CHARSET=utf8mb4 sẽ tự động thay thế bằng CHARSET=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 730 24768 (Ext 0)
  • Ticket/Email: Bạn dùng email đăng ký dịch vụ gửi trực tiếp về: .
  • Tham khảo dịch vụ Hosting/VPS tại đây!tại đây!

Author Bio

Mình là Quân, hiện đang công tác tại AZDIGI với vị trí là SysAdmin. Mình đam mê viết Blog. Vì viết Blog giúp mình trau dồi được nhiều kỹ năng. Học hỏi thêm nhiều kiến thức mới, từ đó mình có thể chia sẻ đến các bạn các bài viết tài liệu bổ ích hơn.Quân, hiện đang công tác tại AZDIGI với vị trí là SysAdmin. Mình đam mê viết Blog. Vì viết Blog giúp mình trau dồi được nhiều kỹ năng. Học hỏi thêm nhiều kiến thức mới, từ đó mình có thể chia sẻ đến các bạn các bài viết tài liệu bổ ích hơn.

Và đây là Blog cá nhân của mình: https://dotrungquan.info/

Articles by Đỗ Trung Quân

Chào các bạn,

Trong bài viết này Kỹ thuật sẽ hướng dẫn các bạn xử lý trường hợp xảy ra trên hosting khi import database xuất hiện thông báo lỗi: Unknown collation: utf8mb4_0900_ai_ci4

Hướng dẫn mysql utf8mb4_0900_ai_ci error - lỗi mysql utf8mb4_0900_ai_ci

Lỗi như trên là vì phiên bản MySQL hiện tại mà hosting đang chạy không hỗ trợ cho bảng mã utf8mb4_unicode_520_ci.utf8mb4_unicode_520_ci.

Cũng có lúc bạn sẽ gặp lỗi: Unknown collation: utf8mb4_0900_ai_ci5với lý do tương tự.

Bạn có thể tạo một file info.php để kiểm tra phiên bản MySQL đang chạy trên hosting của mình là gì để biết phiên bản đó có hỗ trợ bảng mã đó hay không.info.php để kiểm tra phiên bản MySQL đang chạy trên hosting của mình là gì để biết phiên bản đó có hỗ trợ bảng mã đó hay không.

Unknown collation: utf8mb4_0900_ai_ci6

Hướng dẫn mysql utf8mb4_0900_ai_ci error - lỗi mysql utf8mb4_0900_ai_ci

Theo như hình phiên bản MySQL mà hosting của Kỹ thuật đang dùng là 5.5.36. Với phiên bản MySQL này thì không hỗ trợ bảng mã utf8mb4_unicode_520_ci nhưng có hỗ trợ bảng mã utf8mb4_unicode_ci.MySQL mà hosting của Kỹ thuật đang dùng là 5.5.36. Với phiên bản MySQL này thì không hỗ trợ bảng mã utf8mb4_unicode_520_ci nhưng có hỗ trợ bảng mã utf8mb4_unicode_ci.

Vậy làm cách nào để bạn import database sử dụng bảng mã utf8mb4_unicode_520_ci lên hosting đang chạy phiên bản MySQL 5.5.36?utf8mb4_unicode_520_ci lên hosting đang chạy phiên bản MySQL 5.5.36?

Ta sẽ có 2 cách:

  • Cách 1: Báo lại với nhà cung cấp dịch vụ của bạn yêu cầu họ nâng cấp phiên bản MySQL lên phiên bản 5.6 (phiên bản này có hỗ trợ bảng mã utf8mb4_unicode_520_ci)MySQL lên phiên bản 5.6 (phiên bản này có hỗ trợ bảng mã utf8mb4_unicode_520_ci)
  • Cách 2: Chuyển đổi bảng mã utf8mb4_unicode_520_ci về các bảng mã mà phiên bản MySQL hiện tại bạn đang dùng có hỗ trợ.utf8mb4_unicode_520_ci về các bảng mã mà phiên bản MySQL hiện tại bạn đang dùng có hỗ trợ.

Ở đây chúng ta sẽ không bàn đến cách 1, Kỹ thuật sẽ hướng dẫn các bạn làm cách 2.

Với cách 2, đầu tiên bạn sẽ cần cài đặt Notepad++ để mở file database lên thì mình mới có thể chỉnh sửa được bảng mã. Tải về file cài đặt Notepad++ tại đây.Notepad++ để mở file database lên thì mình mới có thể chỉnh sửa được bảng mã. Tải về file cài đặt Notepad++ tại đây.

Sau khi đã tải về và cài đặt Notepad++ trên máy tính cá nhân, bạn tiến hành mở file database lên bằng cách click chuột phải vào file và chọn Edit with Notepad++.Notepad++ trên máy tính cá nhân, bạn tiến hành mở file database lên bằng cách click chuột phải vào file và chọn Edit with Notepad++.

Hướng dẫn mysql utf8mb4_0900_ai_ci error - lỗi mysql utf8mb4_0900_ai_ci

Mở file lên xong, bạn sẽ tìm đến một bảng (table) gần nhất sẽ thấy bảng đó dùng bảng mã utf8mb4_unicode_520_ci.bảng (table) gần nhất sẽ thấy bảng đó dùng bảng mã utf8mb4_unicode_520_ci.

Hướng dẫn mysql utf8mb4_0900_ai_ci error - lỗi mysql utf8mb4_0900_ai_ci

Giờ ta sẽ đổi toàn bộ bảng mã utf8mb4_unicode_520_ci thành utf8mb4_unicode_ci bằng cách dùng tính năng Replace của Notepad++.utf8mb4_unicode_520_ci thành utf8mb4_unicode_ci bằng cách dùng tính năng Replace của Notepad++.

Bạn nhấn tổ hợp phim Ctrl+H hoặc là chọn Search > Replace như hình dưới.Ctrl+H hoặc là chọn Search > Replace như hình dưới.

Hướng dẫn mysql utf8mb4_0900_ai_ci error - lỗi mysql utf8mb4_0900_ai_ci

Có một toolbox sẽ xuất hiện giữa màn hình, bạn sẽ nhập utf8mb4_unicode_520_ci vào ô Find what, nhập utf8mb4_unicode_ci vào ô Replace with, sau đó nhấn Replace All.toolbox sẽ xuất hiện giữa màn hình, bạn sẽ nhập utf8mb4_unicode_520_ci vào ô Find what, nhập utf8mb4_unicode_ci vào ô Replace with, sau đó nhấn Replace All.

Hướng dẫn mysql utf8mb4_0900_ai_ci error - lỗi mysql utf8mb4_0900_ai_ci

Tiến hành lưu lại file này và import database lại là thành công.

Nếu các bạn gặp phải lỗi Unknown collation: utf8mb4_0900_ai_ci5hoặc lỗi Unknown collation: utf8mb4_0900_ai_ci8 thì đó là do phiên bản MySQL hiện tại không hỗ trợ, bạn nên đổi về lại utf8_unicode_ci với cách như trên nhé.MySQL hiện tại không hỗ trợ, bạn nên đổi về lại utf8_unicode_ci với cách như trên nhé.

Chúc các bạn thành công!

Related