#1273 – 未知排序规则:‘utf8mb4_unicode_520_ci’

#1273 – Unknown collation: ‘utf8mb4_unicode_520_ci’

我在本地 WAMP 服务器上有一个 WordPress 网站。但是当我将其数据库上传到实时服务器时,出现错误

#1273 – Unknown collation: ‘utf8mb4_unicode_520_ci’

如有任何帮助,我们将不胜感激!

你可以通过找到

来解决这个问题
ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci;

在您的 .sql 文件中,并将其与

交换
ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;

我认为这个错误是因为本地服务器和实时服务器是 运行 不同版本的 MySQL。解决这个问题:

  1. 在文本编辑器中打开 sql 文件
  2. 查找所有 utf8mb4_unicode_520_ci 并将其替换为 utf8mb4_unicode_ci
  3. 保存并上传到新的 mySql 数据库

希望对您有所帮助

就我而言,结果是我的
新服务器是 运行 MySQL 5.5,
旧服务器是 运行 MySQL 5.6.
所以我在尝试导入从旧服务器导出的 .sql 文件时遇到了这个错误。

MySQL5.5不支持utf8mb4_unicode_520_ci,但是
MySQL 5.6 分。

在新服务器上更新到 MySQL 5.6 解决了整理错误!

如果想保留MySQL5.5,可以:
- 复制导出的 .sql 文件
- 替换 utf8mb4unicode520_ciutf8mb4_unicode_520_ci
的实例 ...utf8mb4_unicode_ci
- 导入更新后的 .sql 文件。

只需删除“520_”
utf8mb4_unicode_520_ciutf8mb4_unicode_ci

在文本编辑器中打开 sql 文件;

1.搜索: utf8mb4_unicode_ci 替换: utf8_general_ci (全部替换)

2。搜索: utf8mb4_unicode_520_ci 替换: utf8_general_ci (全部替换)

3。搜索: utf8mb4 替换: utf8 (全部替换)

保存并上传!

查找并替换:

utf8mb4_unicode_520_ci

utf8_general_ci

整个sql个文件

轻松替换

sed -i 's/utf8mb4_unicode_520_ci/utf8mb4_unicode_ci/g' your_sql_file.sql

派对迟到了,但万一 WORDPRESS 安装发生这种情况:

#1273 - Unknown collation: 'utf8mb4_unicode_520_ci

在 phpmyadmin 中,export method > Format-specific options(自定义导出)

设置为:MYSQL40

如果您现在尝试导入,您现在可能会收到另一条错误消息:

1064 - You have an error in your SQL syntax; .....

那是因为在 MySQL 5.5 中删除了与 ENGINE 同义的旧 TYPE 选项。

打开您的 .sql 文件,搜索并替换所有实例

TYPE=ENGINE=

现在导入应该很顺利了。

获取排序规则错误 #1273 - 未知排序规则:'utf8mb4_unicode_520_ci' 是由您导出的 MySQL 版本与您导入的 MySQL 服务器的差异引起的。基本上,用于较新版本的 Wordpress 库会检查您的站点 运行 使用的 SQL 版本。如果它使用 MySQL 版本 5.6 或更高版本,它假定使用称为“utf8mb4_unicode_520_ci”的新的和改进的 Unicode 归类算法 (UCA)。这很好,除非您最终将您的 WordPress 网站从较新的 5.6 版本 MySQL 迁移到较旧的 5.6 之前版本的 MySQL.

要解决此问题,您必须编辑 SQL 导出文件并进行搜索和替换,将“utf8mb4_unicode_520_ci”的所有实例更改为“utf8mb4_unicode_ci”。或者,如果您有 PHPMyAdmin,请按照以下步骤操作:

  1. 单击数据库的“导出”选项卡
  2. 单击自定义单选按钮。
  3. 转到标题为 Format-specific 选项的部分并为数据库系统或更旧的 MySQL 服务器更改 drop-down 以最大化输出兼容性:从 NONE 到 MYSQL40.
  4. 滚动到底部并单击开始。

我刚刚在 Notepad++ 中打开 dump.sql 文件并按 CTRL+H 查找并替换字符串“utf8mb4_0900_ai_ci”并将其替换为“ utf8mb4_general_ci”。来源 link https://www.freakyjolly.com/resolved-when-i-faced-1273-unknown-collation-utf8mb4_0900_ai_ci-error/

在我的例子中,我将它替换为 utf8_general_ci 和 sed,如下所示:

sed -i 's/utf8_0900_ai_ci/utf8_general_ci/g' MY_DB.sql 
sed -i 's/utf8mb4_unicode_520_ci/utf8_general_ci/g' MY_DB.sql 

在那之后,我可以毫无问题地导入它。

我是这样解决的,我用记事本打开.sql文件,点击CTRL+H,找到并替换字符串“utf8mb4_0900_ai_ci”并将其替换为“utf8mb4_general_ci”。

我只是删除了 COLLATE 和其他属性,只保留到 ENGINE。 像下面这样

发件人:

ENGINE=InnoDB AUTO_INCREMENT=429 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci

收件人:

ENGINE=InnoDB;

对我来说效果很好。

1273 - 未知排序规则:'utf8mb4_0900_ai_ci'

在我的例子中,我无法使用

导入数据库
ENGINE = InnoDB AUTO_INCREMENT = 1 DEFAULT CHARSET = utf8 COLLATE = utf8_general_ci;

ENGINE = InnoDB AUTO_INCREMENT = 1 DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci;

两者都有。但是在 .SQL 文件 中将其更改为这个解决了问题

ENGINE=InnoDB DEFAULT CHARSET=latin1;

已更新

使用“utf8mb4_general_ci”解决了问题

ENGINE = InnoDB AUTO_INCREMENT = 1 DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci;

这个错误是由于MySQL不同版本的冲突造成的。解决这个问题:

  • 在任何文本编辑器中打开 sql 文件

  • 查找并替换所有 utf8mb4_0900_ai_ci 为 utf8mb4_unicode_ci

  • 保存并尝试新的 mySql 数据库文件

之后再试一次,对我来说效果很好

我在使用 mysql workbench 将数据导入 mysql 时遇到了挑战。这是一个整理问题。 我通过以下方式解决了这个错误:

  1. 正在使用文本编辑器打开 .sql 文件
  2. 将“utf8mb4_0900_ai_ci”替换为“utf8mb4_general_ci”。
  3. 将文件另存为 .sql 并导入

有效

很奇怪,所有答案都建议更换排序规则。这是一种非常糟糕的做法,因为您想使用与开发版本和生产版本相同的 MySQL 版本。因此,您的本地 mysql 服务器应该是相同的。

首先,执行查询 SHOW COLLATION 以检查您的服务器支持的所有排序规则。如果您使用 xampp 或任何其他类似工具来启动您的服务器,它可能会附带 maria db 服务器而不是 mysql 服务器。

您应该做的是用真正的 mysql 替换当前的 mysql(实际上是 mariadb)。

所以你应该做的就是用 mysql 服务器替换你的 maria 数据库服务器。