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

时间:2015-10-09 10:43:48

标签: mysql utf-8 character-encoding utf8mb4

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

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

1115 - 未知字符集:'utf8mb4'

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

3 个答案:

答案 0 :(得分:4)

错误明确指出您的舞台数据库服务器上没有utf8mb4支持。

原因:可能是本地的MySQL版本5.5.3或更高版本,而在舞台/托管的VPS上,MySQL服务器版本低于{{1} }}

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

  由于MySQL 5.5.3字符集中存在错误,因此添加了

utf8mb4。   MySQL对utf8字符集的处理仅允许最多3个   单个代码点的字节数,不足以代表   整个Unicode(最大代码点= utf8)。因为他们   不想破坏任何依赖这辆车的东西   行为,0x10FFFF已添加。 Documentation here

解决方案1 ​​: 只需将您的MySQL服务器升级到5.5.3(至少) - 下次要关注您在本地使用的版本,对于舞台,对于prod,所有必须必须相同。 建议 - 目前默认字符集应为utf8mb4

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

答案 1 :(得分:1)

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

答案 2 :(得分:1)

通过文本编辑器打开sql文件查找并替换所有

utf8mb4 to utf8

再次导入。