[英]ERROR 1115 (42000): Unknown character set: 'utf8mb4' on connection
[英]#1115 - Unknown character set: 'utf8mb4'
我的个人计算机上运行着一个本地网络服务器,用于本地开发。 我现在处于导出数据库并将其导入到托管VPS的阶段。
导出然后导入时,出现以下错误!
有人可以指出我正确的方向吗?
该错误清楚地表明,您的舞台数据库服务器上不支持utf8mb4
。
原因 :可能在本地具有MySQL
5.5.3
或更高版本,而在舞台/托管VPS上, MySQL
服务器版本低于5.5.3
utf8mb4字符集是在MySQL 5.5.3中添加的。
由于MySQL的
utf8
字符集存在错误,因此添加了utf8mb4
。 MySQL对utf8
字符集的处理仅允许单个代码点最多3个字节,这不足以代表整个Unicode(最大代码点=0x10FFFF
)。 因为他们不想破坏任何依赖于这种错误行为的东西,utf8mb4
添加了utf8mb4
。 文档在这里 。
解决方案1 :只需将您的MySQL服务器升级到5.5.3(至少)-下一次,请注意您在本地,阶段和产品上使用的版本必须全部相同。 一个建议 -目前默认字符集应为utf8mb4
。
解决方案2 (不推荐):将当前字符集转换为utf8
,然后导出数据-加载成功。
有时我在使用HeidiSQL时会遇到类似的问题,默认情况下,它以utf8mb4字符编码导出。 并非所有的MySQL安装都支持这种编码,并且导入此类数据会导致类似的错误消息。 然后,我的解决方法是使用phpMyAdmin导出数据,该文件在utf8中导出。 可能还有其他工具和可能的方式,例如手动编辑转储文件,将其从utf8mb4转换为utf8(如果需要)并将SET NAMES utf8mb4
更改为SET NAMES utf8
。 utf8mb4是utf8的超集,因此,如果您完全确定自己的数据只是utf8,则只需将转储文件中的SET NAMES
更改为utf8
。
通过文本编辑器打开sql文件,查找并替换所有
utf8mb4 to utf8
再次导入。
这对我有帮助
ALTER TABLE your_table_name CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.