#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。解决这个问题:
- 在文本编辑器中打开 sql 文件
- 查找所有
utf8mb4_unicode_520_ci
并将其替换为 utf8mb4_unicode_ci
- 保存并上传到新的 mySql 数据库
希望对您有所帮助
就我而言,结果是我的
新服务器是 运行 MySQL 5.5
,
旧服务器是 运行 MySQL 5.6
.
所以我在尝试导入从旧服务器导出的 .sql
文件时遇到了这个错误。
MySQL5.5不支持utf8mb4_unicode_520_ci
,但是
MySQL 5.6 分。
在新服务器上更新到 MySQL 5.6
解决了整理错误!
如果想保留MySQL5.5,可以:
- 复制导出的 .sql
文件
- 替换 utf8mb4unicode520_ci
和 utf8mb4_unicode_520_ci
的实例
...utf8mb4_unicode_ci
- 导入更新后的 .sql
文件。
只需删除“520_”
utf8mb4_unicode_520_ci
→ utf8mb4_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,请按照以下步骤操作:
- 单击数据库的“导出”选项卡
- 单击自定义单选按钮。
- 转到标题为 Format-specific 选项的部分并为数据库系统或更旧的 MySQL 服务器更改 drop-down 以最大化输出兼容性:从 NONE 到 MYSQL40.
- 滚动到底部并单击开始。
我刚刚在 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 时遇到了挑战。这是一个整理问题。
我通过以下方式解决了这个错误:
- 正在使用文本编辑器打开 .sql 文件
- 将“utf8mb4_0900_ai_ci”替换为“utf8mb4_general_ci”。
- 将文件另存为 .sql 并导入
有效
很奇怪,所有答案都建议更换排序规则。这是一种非常糟糕的做法,因为您想使用与开发版本和生产版本相同的 MySQL 版本。因此,您的本地 mysql 服务器应该是相同的。
首先,执行查询 SHOW COLLATION 以检查您的服务器支持的所有排序规则。如果您使用 xampp 或任何其他类似工具来启动您的服务器,它可能会附带 maria db 服务器而不是 mysql 服务器。
您应该做的是用真正的 mysql 替换当前的 mysql(实际上是 mariadb)。
所以你应该做的就是用 mysql 服务器替换你的 maria 数据库服务器。
我在本地 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。解决这个问题:
- 在文本编辑器中打开 sql 文件
- 查找所有
utf8mb4_unicode_520_ci
并将其替换为utf8mb4_unicode_ci
- 保存并上传到新的 mySql 数据库
希望对您有所帮助
就我而言,结果是我的
新服务器是 运行 MySQL 5.5
,
旧服务器是 运行 MySQL 5.6
.
所以我在尝试导入从旧服务器导出的 .sql
文件时遇到了这个错误。
MySQL5.5不支持utf8mb4_unicode_520_ci
,但是
MySQL 5.6 分。
在新服务器上更新到 MySQL 5.6
解决了整理错误!
如果想保留MySQL5.5,可以:
- 复制导出的 .sql
文件
- 替换 utf8mb4unicode520_ci
和 utf8mb4_unicode_520_ci
的实例
...utf8mb4_unicode_ci
- 导入更新后的 .sql
文件。
只需删除“520_”
utf8mb4_unicode_520_ci
→ utf8mb4_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,请按照以下步骤操作:
- 单击数据库的“导出”选项卡
- 单击自定义单选按钮。
- 转到标题为 Format-specific 选项的部分并为数据库系统或更旧的 MySQL 服务器更改 drop-down 以最大化输出兼容性:从 NONE 到 MYSQL40.
- 滚动到底部并单击开始。
我刚刚在 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 时遇到了挑战。这是一个整理问题。 我通过以下方式解决了这个错误:
- 正在使用文本编辑器打开 .sql 文件
- 将“utf8mb4_0900_ai_ci”替换为“utf8mb4_general_ci”。
- 将文件另存为 .sql 并导入
有效
很奇怪,所有答案都建议更换排序规则。这是一种非常糟糕的做法,因为您想使用与开发版本和生产版本相同的 MySQL 版本。因此,您的本地 mysql 服务器应该是相同的。
首先,执行查询 SHOW COLLATION 以检查您的服务器支持的所有排序规则。如果您使用 xampp 或任何其他类似工具来启动您的服务器,它可能会附带 maria db 服务器而不是 mysql 服务器。
您应该做的是用真正的 mysql 替换当前的 mysql(实际上是 mariadb)。
所以你应该做的就是用 mysql 服务器替换你的 maria 数据库服务器。