问题描述
我在本地开发环境中运行 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 (将#修改为@)