前几天举办网站搬迁,MySQL导入数据的时候,呈现以下错误(没有界说的编码集utf8mb4):
SQL 查询:
;
MySQL 返回:文档
#1115 - Unknown character set: 'utf8mb4'
问题原因:.sql是从恒创主机导出,然后导入到西部数码。因为恒创虚拟主机配备的MySQL数据库版本是5.6。而西部数码虚拟主机配备的MySQL数据库版本是5.1,不支持utf8mb4字符集。所以呈现错误,要将mysql数据库进级到5.5以上版本才支持。
假如你用的是西部数码的虚拟主机的,可以在虚拟主机打点--打点--(主机相关处事打点)改换机房--选择mysql5.6版本,系统会自动切换mysql5.6处事器。(西部数码今朝许多处事都要收手续费的,如机房改换要20元手续费,感受有点坑吧)
在阿里虚拟主机通过节制面板的DMS东西导入MySQL呈现也呈现如下报错(今朝阿里云数据库临时不支持utf8mb4这个字符集):
执行的SQL语句堕落:
错误信息:Unknown character set: 'utf8mb4'
今朝大大都处事器数据库版本都是5.1的,假如你用的是阿里虚拟主机,又简直需要利用utf8mb4字符集,可以购置利用MySQL 5.5以上版本的RDS处事。
另一个办理要领:利用记事本打开.sql文件,通过ctrl+h将该文件的中的CHARSET = utf8mb4全部替换成CHARSET = utf8,将COLLATE = utf8mb4_unicode_ci 全部替换为COLLATE = utf8_general_ci,然后从头导入测试,修改之前发起先对源文件做备份。(发起先将之前导入的部门数据删除,将数据库清空再操纵导入。)
说白了,虚拟主机导入MySQL数据呈现以上报错:unknown collation:utf8mb4_unicode_ci,就是mysql版本坎坷造成的。更多要领接待交换分享。
PS:今朝大都处事器的数据库mysql5.6可以兼容mysql5.1的,导入一般不会有问题。但版本5.1迁移(导入)到其他版本5.6大概会堕落,发起实验进级更高版本的数据库。