#1273 -未知排序:' utf8mb4_unicode_520_ci '

我在本地里面服务器上有一个WordPress网站。但当我上传它的数据库到活服务器,我得到错误

#1273 – Unknown collation: ‘utf8mb4_unicode_520_ci’

任何帮助都将不胜感激!

520486 次浏览

你可以通过求

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_ci替换所有utf8mb4_unicode_520_ci
  3. 保存并上传到一个新的mySql数据库

enter image description here

在我的例子中,结果是我的
新服务器正在运行MySQL 5.5
旧的服务器正在运行MySQL 5.6.
. properties 所以当我试图导入我从旧服务器导出的.sql文件时,我得到了这个错误 MySQL 5.5不支持utf8mb4_unicode_520_ci,但

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

如果你想保留MySQL 5.5,你可以:
-复制导出的.sql文件
-替换utf8mb4unicode520_ciutf8mb4_unicode_520_ci
的实例 ...与utf8mb4_unicode_ci < br > -导入您更新的.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; .....

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

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

TYPE=ENGINE=

现在导入应该很顺利了。

得到排序错误#1273 -未知排序:'utf8mb4_unicode_520_ci'是由您导出的MySQL版本和您导入的MySQL服务器的差异引起的。基本上,Wordpress的新版本库可以检查你的站点运行的SQL版本。如果它使用MySQL 5.6或更高版本,它假设使用新的和改进的Unicode排序算法(UCA),称为“utf8mb4_unicode_520_ci”。这很好,除非你最终把你的WordPress站点从更新的5.6版本的MySQL迁移到更老的5.6之前的MySQL版本。

要解决这个问题,你必须编辑你的SQL导出文件,并进行搜索和替换,将' utf8mb4_unicode_520_ci '的所有实例更改为' utf8mb4_unicode_ci '。如果你有PHPMyAdmin,也可以按照下面的步骤:

  1. 单击数据库的Export选项卡
  2. 单击Custom单选按钮。
  3. 进入“特定格式选项”部分,更改数据库系统或旧MySQL服务器的下拉菜单,以最大限度地提高输出兼容性:从NONE到MYSQL40。
  4. 滚动到底部并单击GO。

我刚打开垃圾箱。并按CTRL+H找到并替换字符串“utf8mb4_0900_ai_ci”,并将其替换为“utf8mb4_general_ci”。源链接https://www.freakyjolly.com/resolved-when-i-faced-1273-unknown-collation-utf8mb4_0900_ai_ci-error/

在我的例子中,我像这样用sed替换utf8_general_ci:

sed -i 's/utf8mb4_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"并将其替换为“__abc1”。

我简单地删除了COLLATE和其他属性,只留下ENGINE。 像下面的

来自:

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

:

ENGINE=InnoDB;

这对我来说很有效。

1273 -未知排序:'utf8mb4_0900_ai_ci'

在我的情况下,我无法导入DB使用

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;

<强> < /强>更新

使用' __abc0 '解决了这个问题

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

此错误是由于MySQL不同版本的冲突引起的。要解决这个问题:

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

  • 用utf8mb4_unicode_ci替换所有utf8mb4_0900_ai_ci

  • 保存并尝试新的mySql db文件

之后再试一次,它对我来说很好 enter image description here < / p >

我经历了一个挑战,导入数据到mysql导出使用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 db服务器。

经过一番调查,我发现在目标服务器上运行的MySQL服务器的版本比源服务器的版本要旧。因此,我们知道目标服务器不包含所需的数据库排序规则。

然后我们在备份文件中做一点调整来解决这个问题。在文本编辑器中编辑数据库备份文件(your_sql_file.sql),将utf8mb4_0900_ai_ci替换为utf8mb4_general_ci,将CHARSET=utf8mb4替换为CHARSET=utf8

我希望这个解决方案能帮助到你。

使用sed命令直接替换文件中的文本

Linux操作系统

sed -i 's/utf8mb4_unicode_520_ci/utf8mb4_general_ci/g' YOUR_SQL_FILE.sql

Mac OS

sed -i '' s/utf8mb4_unicode_520_ci/utf8mb4_general_ci/g' YOUR_SQL_FILE.sql

这个命令的帮助下,我在第51行修复了错误1273 (HY000):未知排序:'utf8mb4_0900_ai_ci'