這個錯誤是由於資料庫的字元排序規則(collation)不被目前的 MySQL 伺服器版本支援所導致的。utf8mb4_0900_ai_ci
是從 MySQL 8.0 開始支援的排序規則,但如果您使用的是舊版本(例如 MySQL 5.x),就會遇到這個錯誤。
解決方法
方法 1:將排序規則改為舊版支援的 utf8mb4
排序規則
如果您無法升級 MySQL,可以將 utf8mb4_0900_ai_ci
替換為舊版本支援的排序規則,例如 utf8mb4_general_ci
或 utf8mb4_unicode_ci
。
- 匯出資料庫的 SQL 檔案。
- 使用文字編輯器(例如
vim
或 nano
)打開匯出的 SQL 檔案。
- 將所有
utf8mb4_0900_ai_ci
替換為 utf8mb4_general_ci
。
- 將修改後的 SQL 匯入資料庫:
mysql -u username -p database_name < exported_file.sql
方法 2:升級 MySQL 到 8.0 或更新版本
如果可能,升級您的 MySQL 伺服器到 8.0 或更新版本,因為這個版本開始支援 utf8mb4_0900_ai_ci
。
備份資料庫。
依據操作系統的指引升級 MySQL:
確保升級後的資料庫配置與應用程式兼容。
方法 3:設定資料庫的預設排序規則
若您只是在匯入過程中遇到問題,則可以直接修改資料庫的預設排序規則。
- 登入 MySQL:
mysql -u username -p
- 修改資料庫的預設排序規則:
ALTER DATABASE database_name CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
- 如果需要,也可以修改表格的排序規則:
ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
注意
如果您的應用程式無法使用較新的排序規則,建議檢查程式碼中的資料庫配置,並與開發人員協調以確保字元集與排序規則的兼容性。