导入SQL文件时报错:unknown collation utf8mb4_unicode_ci

更新时间:
复制为 MD 格式

当您通过数据管理DMS导入SQL文件时,提示unknown collation utf8mb4_unicode_ci。本文介绍这种情况的可能原因和解决方案。

问题现象

通过数据管理DMS导入SQL文件时,提示unknown collation: 'utf8mb4_unicode_ci'

[2015-06-17 14:25:40]: 准备数据库连接信息...
[2015-06-17 14:25:40]: 数据库连接准备完成...
[2015-06-17 14:25:40]: 开始解析文件......
[2015-06-17 14:25:40]: 读取文件内容,通过自动解析文件字符集方式读取文件内容...
[2015-06-17 14:25:40]: 自动识别文件字符集为:UTF-8
[2015-06-17 14:25:40]: 文件内容读取完成...
[2015-06-17 14:25:40]: 解析文件完成,耗时:3ms
[2015-06-17 14:25:40]: 导入为SQL语句,现在开始处理.....
[2015-06-17 14:25:40]: 开始解析解析文件中的SQL语句...
[2015-06-17 14:25:40]: 文件中SQL语句解析完成
[2015-06-17 14:25:40]: 预计导入SQL的数量为:557
[2015-06-17 14:25:40]: ==========================================
执行的SQL语句出错:
CREATE TABLE `wp_commentmeta` (
  `meta_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `comment_id` bigint(20) unsigned NOT NULL DEFAULT '0',
  `meta_key` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `meta_value` longtext COLLATE utf8mb4_unicode_ci,
  PRIMARY KEY (`meta_id`),
  KEY `comment_id` (`comment_id`),
  KEY `meta_key` (`meta_key`(191))
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
错误信息: Unknown collation: 'utf8mb4_unicode_ci'
[2015-06-17 14:25:40]:
已成功执行SQL条数为:2

可能原因

MySQL5.5.3以上版本开始支持utf8mb4字符集。由于云虚拟主机配备的MySQL数据库版本为5.1.48,所以不支持utf8mb4字符集。

解决方案

  1. 根据您是否必须使用utf8mb4字符集,选择合适的处理方法。

    • 如果您可以使用其他字符集,请执行以下操作:

      1. 在本地另存SQL文件,创建一份文件的备份。

      2. 使用记事本打开待导入的SQL文件。

      3. 修改文件中的参数,然后保存文件。

        • CHARSET = utf8mb4替换为CHARSET = utf8

        • COLLATE = utf8mb4_unicode_ci 替换为COLLATE = utf8_general_ci

    • 如果您必须使用utf8mb4字符集,建议您升级或购买云虚拟主机,可以提供更高版本的MySQL数据库。具体操作,请参见升级云虚拟主机购买云虚拟主机

  2. 重新导入SQL文件。

    如果问题仍未解决,请提交工单