在步骤5.7->8.0.23中从5.6->5.7->8.0.23升级mysql时,我收到一个警告:
The following objects use the utf8mb3 character set. It is recommended to convert them to use utf8mb4 instead, for improved Unicode support.
More Information:
https://dev.mysql.com/doc/refman/8.0/en/charset-unicode-utf8mb3.html
common_schema - schema's default character set: utf8
mysql - schema's default character set: utf8
common_schema._global_qs_functions.function_arguments - column's default character set: utf8
common_schema._global_qs_variables.value_snapshot - column's default character set: utf8
common_schema._global_script_report_data.info - column's default character set: utf8
...
在'mysql-schema的默认字符集:utf8'中,'mysql'是什么意思?是Innodb吗?
每个MySQL实例都有一个名为MySQL
的系统模式,其中包含系统信息的表,如用户密码和特权、时区、存储的例程等。您可以在以下手册中阅读:https://dev.mysql.com/doc/refman/5.7/en/system-schema.html
此警告告诉您,系统架构是用不推荐的默认字符集定义的。您可以通过以下方式看到默认字符集:
mysql> show create schema mysql;
+----------+-------------------------------------------------------------------+
| Database | Create Database |
+----------+-------------------------------------------------------------------+
| mysql | CREATE DATABASE `mysql` /*!40100 DEFAULT CHARACTER SET utf8mb4 */ |
+----------+-------------------------------------------------------------------+
在我的例子中,系统模式的默认字符集是UTF8MB4。
架构的默认字符集不起作用,除非您创建新表并且不指定其字符集。该表将使用架构的默认字符集。
(在MySQL中,“schema”和“database”在大多数上下文中是同义词。)