我在我的电脑上运行了一个本地网络服务器,用于本地开发。我现在正处于导出数据库并导入我托管的VPS的阶段。
导出然后导入时出现以下错误!
有人能指出我正确的方向吗?
答案 0 :(得分:4)
错误明确指出您的舞台数据库服务器上没有utf8mb4
支持。
原因:可能是本地的MySQL
版本5.5.3
或更高版本,而在舞台/托管的VPS上,MySQL
服务器版本低于{{1} }}
在MySQL 5.5.3中添加了utf8mb4字符集。
由于MySQL5.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
再次导入。