我有一个MySQL数据库,其中数据以latin1字符编码存储。
我需要在mysql数据库的新环境中移植这些数据,但完全支持utf8编码。
我已阅读了很多帖子,最后为了解决这个问题,我选择使用mysqldump导出数据而不使用任何特殊参数作为选项--default-character-set。这似乎工作正常,但我对它有很多怀疑。
这是解决此问题的正确方法吗? 如果没有,我如何导出和导入这些数据并保持其原始编码?
一些技术信息。我需要通过两个服务器Linux Ubuntu执行此迁移,其中mysql的版本为5.6.33。
任何帮助都表示赞赏。
再次感谢Lorenzo。
答案 0 :(得分:0)
为什么你关心存储的字符集是什么?我的观点是,你可以隐藏这个细节。无论如何,如果必须的话,我会告诉你如何以这种方式存储它。
导出时,指定将文件写入latin1或utf8或utf8mb4。
导入时,首先声明导入文件是 编码。
然后将列和表声明为latin1或utf8或utf8mb4。如有必要,负载将进行转码。
所有latin1字符都有相应的utf8 / utf8mb4 / UTF-8编码,因此它不会在你的场景中偶然发现 。
你应使用utf8mb4构建所有新表。服务器默认到utf8;你可以覆盖你的列/表声明。
可以将列声明为latin1但使用utf8mb4连接。同样,转码将是透明的,无损失(或读取)。