提问者:小点点

在'mysql-schema的默认字符集:utf8'中,'mysql'是什么意思?是Innodb吗?


在步骤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吗?


共1个答案

匿名用户

每个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”在大多数上下文中是同义词。)