#1115 - 未知字符集:'utf8mb4'

#1115 - Unknown character set: 'utf8mb4'

我的电脑上有一个本地网络服务器 运行,用于本地开发。我现在正处于导出数据库并导入到我的托管 VPS.

的阶段

导出然后导入时出现以下错误!

1115 - 未知字符集:'utf8mb4'

有人能给我指出正确的方向吗?

有时我在使用默认以 utf8mb4 字符编码导出的 HeidiSQL 时遇到类似的问题。并非所有 MySQL 安装都支持此编码,导入此类数据会导致类似的错误消息。我的解决方法是使用 phpMyAdmin 导出数据,它以 utf8 格式导出。可能还有其他工具和可能的方法,例如手动编辑转储文件、将其从 utf8mb4 转换为 utf8(如果需要)以及将 SET NAMES utf8mb4 更改为 SET NAMES utf8。 Utf8mb4 是 utf8 的超集,所以如果你绝对确定你的数据只是 utf8,那么你可以简单地将转储文件中的 SET NAMES 更改为 utf8.

该错误明确指出您的阶段数据库服务器不支持 utf8mb4

原因:您可能在本地拥有 MySQL 版本 5.5.3 或更高版本,而在 stage/hosted VPS 上您拥有 MySQL服务器版本低于5.5.3

在 MySQL 5.5.3 中添加了 utf8mb4 字符集。

utf8mb4 was added because of a bug in MySQL's utf8 character set. MySQL's handling of the utf8 character set only allows a maximum of 3 bytes for a single codepoint, which isn't enough to represent the entirety of Unicode (Maximum codepoint = 0x10FFFF). Because they didn't want to potentially break any stuff that relied on this buggy behaviour, utf8mb4 was added. Documentation here.


解决方案 1: 只需将您的 MySQL 服务器升级到 5.5.3(至少)- 下次注意您在本地使用的版本,对于阶段和产品,都必须相同。 一个建议 - 目前默认的字符集应该是utf8mb4.


解决方案2(不推荐):将当前字符集转换为utf8,然后导出数据-加载正常。

用文本编辑器打开 sql 文件查找并全部替换

utf8mb4 to utf8

再次导入。

这对我有帮助

ALTER TABLE your_table_name CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;