微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使 MySQL 8 与 MySQL 5.7 兼容?

如何解决如何使 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 举报,一经查实,本站将立刻删除。