【问题标题】:Phpmyadmin MYSQL import: Certain characters are not importedphpmyadmin MYSQL 导入:某些字符没有导入
【发布时间】:2021-03-21 23:11:03
【问题描述】:

我正在将 wordpress 站点从一台服务器迁移到另一台服务器。我从旧服务器导出了一个 sql 转储,并通过 phpmyadmin 将其导入到新服务器数据库中。但是某些字符无法正确显示,例如撇号和连字符。

我认为这是因为 2 个服务器中存在不同的数据库编码。旧服务器的字符集编码为 utf8mb4_unicode_520_ci,而新服务器的编码为 latin1_swedish_ci

我尝试通过将导出转储设置为 iso-8859-1 来更改“文件的字符集:”,以便将其正确导入 latin1_swedish_ci 但在导入 SQL 语法时出错。

如何正确迁移这里的数据?

【问题讨论】:

  • 如果你知道旧的编码是什么,为什么不在新服务器上使用它
  • @RiggsFolly 我没有超级管理员权限来更改新服务器上的编码
  • 转储上使用了哪些参数?负载上使用了什么?有一种方法可以让转储+加载“做正确的事情”,还有很多方法可以搞砸。

标签: mysql encoding iso-8859-1 utf8mb4


【解决方案1】:

除非你有特定的理由使用“latin1_swedish_ci”(我无法想象你会这样做——它在某些时候是 MySQL 的默认设置),否则你根本不应该使用它。更改新服务器上的字符集编码以匹配前者。

【讨论】:

  • 我没有超级管理员权限来更改新服务器上的编码。我已经更改了表格的编码,因此它现在可以很好地用于未来的数据。但是如何更正旧数据呢?
  • 数据不应该被“改变”或“更正”;数据库是唯一的事实来源。你不应该改变任何数据。找出谁有权更改字符集编码,并让他们这样做。 “latin1_swedish_ci”通常是一种无用的编码,您应该以正确的方式做事。
  • 大声笑。说得好。完全按照你说的做了
猜你喜欢
  • 2018-04-18
  • 2011-06-30
  • 2015-07-20
  • 1970-01-01
  • 1970-01-01
  • 2012-09-10
  • 2011-05-13
  • 2015-12-10
  • 2013-05-11
相关资源
最近更新 更多