wordpress数据库文件sql导入时出现#1253 – COLLATION ‘utf8mb4_unicode_ci’ is not valid for CHARACTER SET ‘utf8’的解决方法
这个错误是因为在导入SQL文件时,数据库字符集和校对规则不匹配导致的。具体来说,utf8mb4_unicode_ci是一种校对规则,它适用于utf8mb4字符集,而不是utf8字符集。以下是解决这个问题的几种方法:
方法1:将数据库字符集改为utf8mb4
这是推荐的方法,因为utf8mb4是MySQL5.5.3之后引入的字符集,它支持存储4字节的UTF-8字符(如表情符号),而utf8字符集只支持3字节的UTF-8字符。
登录数据库管理工具(如phpMyAdmin)。
选择数据库。
导出数据库(备份当前数据库)。
更改数据库字符集:
在phpMyAdmin中,选择数据库,点击“操作”。
在“数据库字符集”中,选择utf8mb4,校对规则选择utf8mb4_unicode_ci。
点击“执行”。
重新导入SQL文件。
方法2:修改SQL文件
如果你无法更改数据库字符集,可以通过修改SQL文件来解决这个问题。
打开SQL文件,使用文本编辑器(如Notepad++或VSCode)。
查找并替换:
找到所有utf8mb4_unicode_ci的地方。
替换为utf8_general_ci或utf8_unicode_ci(取决于你的数据库字符集)。
保存并重新导入。
方法3:在导入时忽略校对规则
如果你只是想快速导入数据,可以尝试忽略校对规则。
在phpMyAdmin中导入SQL文件时:
在导入页面,找到“SQL选项”。
勾选“忽略错误”或“忽略校对规则”(具体选项可能因版本而异)。
点击“执行”。
方法4:检查MySQL版本
如果你的MySQL版本低于5.5.3,utf8mb4字符集可能不可用。这种情况下,建议升级MySQL版本。
方法5:手动修改数据库表结构
如果上述方法都不适用,可以手动修改数据库表结构。
登录数据库管理工具。
选择数据库和表。
修改表结构:
对于每个表,将字符集改为utf8,校对规则改为utf8_general_ci或utf8_unicode_ci。
例如:
ALTER TABLE your_table_name CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
重新导入SQL文件。
推荐使用方法1,将数据库字符集改为utf8mb4,因为这是现代MySQL数据库推荐的字符集,支持更广泛的字符(包括表情符号)。如果无法更改字符集,可以尝试方法2或方法3。
原文