我使用Mamp 3.4。我有一个包含3个表的小型数据库。当我将数据库文件上传到服务器时,我有这样的错误:#1115 - 未知字符集:' utf8mb4'
我已回到MAMP并检查:操作>整理> utf8_unicode_ci 我在每个表和一般数据库中都有这个
要导出我选择数据库>出口>自定义>将输出保存到文件。在剩下的事情中,我保留了默认值。
问题出在哪里?什么是mb4? utf8_unicode_ci是正确的吗?如何从MAMP导出并导入我的服务器?
答案 0 :(得分:2)
让我们直截了当:字符集与整理不一样。这两个概念只是密切关注。
字符集告诉程序处理文本如何解释构成文本的字节流以及屏幕上显示的字符。
归类告诉程序处理文本如何对字符进行排序以进行比较和排序。因此,如果您通过RDBMS中的文本字段执行订单,那么RDBMS可以使用排序规则来计算记录的顺序。
utf8mb4是MySql使用的字符集。 MySql的utf8实现可以表示最多3个字节的字符,而utf8mb4可以表示最多4个字节的字符。 utf8标准使用最多4个字节的定义(utf8, wikipedia),严格来说,utf8mb4是mysql中真正的utf8实现。
然而,utf8mb4最近才被添加(v5.5.3),所以它的存在在mysql社区(MySql utf8mb4)中仍然不是那么广为人知。
如果您尝试使用此字符集将数据导入不支持该数据库的数据库,则会在您的问题中收到错误消息。
排序规则应该与编码匹配,因此如果你有utf8mb4字符集,那么也要使用utf8mb4排序规则。您需要将数据转换为目标系统支持的字符集,并且需要将排序规则与编码对齐。