【问题标题】:#1115 - Unknown character set: 'utf8mb4'#1115 - 未知字符集:'utf8mb4'
【发布时间】:2016-01-07 06:44:54
【问题描述】:

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

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

1115 - 未知字符集:'utf8mb4'

有人可以指出正确的方向吗?

【问题讨论】:

  • 您是如何导出数据的?您使用什么转储工具或数据库管理器应用程序?
  • 您有哪些 MySQL 和 phpMyAdmin 版本(请提供本地和托管版本)?

标签: mysql utf-8 character-encoding utf8mb4


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    错误清楚地表明您的舞台数据库服务器不支持utf8mb4

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

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

    utf8mb4 是由于 MySQL 的 utf8 字符集中的错误而添加的。 MySQL对utf8字符集的处理只允许最多3个 单个代码点的字节数,不足以表示 整个 Unicode(最大代码点 = 0x10FFFF)。因为他们 不想破坏任何依赖这个越野车的东西 行为,添加了utf8mb4Documentation here.


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


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

    【讨论】:

      【解决方案3】:

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

      utf8mb4 to utf8
      

      再次导入。

      【讨论】:

      • 您应该在答案中添加解释。
      【解决方案4】:

      这对我有帮助

      ALTER TABLE your_table_name CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
      

      【讨论】:

        猜你喜欢
        • 2014-03-21
        • 2019-08-04
        • 2016-11-13
        • 2016-11-28
        • 2021-08-19
        • 2012-04-10
        • 2016-08-22
        • 2016-05-31
        相关资源
        最近更新 更多