如何使 MySQL 8 与 MySQL 5.7 兼容?

问题描述

我在本地开发环境中运行 MysqL 8.x,同时将我的基础架构转换为它。 prod 上有运行 5.7 的服务,在这个阶段,我试图将转储从 8.x 服务器导入到 5.7 服务器。

据我所知,所有字符集都是 utf8_unicode_ci。但是我无法导入转储,因为它以某种方式包含这样的行:

ALTER DATABASE `dbname` CHaraCTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci ;

我已经将此配置添加到 my.cnf 并重新启动了开发服务器:

collation_server        = utf8_unicode_ci
character_set_server    = utf8

show variables like "character_set_database"
variable_name    Value
character_set_database    utf8

还改变了数据库

ALTER DATABASE dbname CHaraCTER SET utf8 COLLATE utf8_unicode_ci;
Query OK,1 row affected,2 warnings (0.00 sec)

MysqL> show warnings;
+---------+------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Level   | Code | Message                                                                                                                                                                     |
+---------+------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Warning | 3719 | 'utf8' is currently an alias for the character set UTF8MB3,but will be an alias for UTF8MB4 in a future release. Please consider using UTF8MB4 in order to be unambiguous. |
| Warning | 3778 | 'utf8_unicode_ci' is a collation of the deprecated character set UTF8MB3. Please consider using UTF8MB4 with an appropriate collation instead.                              |
+---------+------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)

我在 db 中找不到 _900_ai CHAR SET 的任何地方,但不知何故它在 db 的转储中。

ALTER DATABASE `dbname` CHaraCTER SET utf8 COLLATE utf8_unicode_ci ;
ALTER DATABASE `dbname` CHaraCTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci ;

如何将整个 DBMS 的字符集更改为 utf8_unicode_ci,以便在 MysqL5.7 和 8.x 之间导出/导入?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)