Laravel: 1267 Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8mb4_unicode_ci,COERCIBLE)

Hôm nay mình sẽ hướng dẫn các bạn sửa lỗi 1267 Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8mb4_unicode_ci,COERCIBLE) của laravel khi tương tác mới mysql. Với version laravel hiện tại của mình là 5.8.x và mysql version 8.0.22.

Nguyên nhân lỗi là table và database không cùng charset, để sửa lỗi này thì ta làm cho table và database cùng một charset.

Trường hợp 1: Database ít table

Thay đổi charset của database:

Thay đổi charset của table:

Kiểm tra sau khi chạy câu truy vấn (query):

Trường hợp 2: Database nhiều table:

Truy vấn lấy tất cả các câu để cập nhật charset

Copy kết quả trả về và chạy các câu lệnh đó để cập nhật lại charset.

Sau khi chạy xong thì các bạn kiểm tra lại câu query có chạy được chưa nhé, sử dụng lại các câu truy vấn ở mục trên.

Hi vọng sẽ giúp được bạn. Thanks