每次我重新启动 mysql 时,我都会在重新启动后立即在错误日志中看到以下内容

每次我重新启动 mysql 时,我都会在重新启动后立即在错误日志中看到以下内容
2017-06-29T17:38:11.740837Z 0 [Note] Event Scheduler: Loaded 0 events
2017-06-29T17:38:11.741470Z 0 [Note] /usr/sbin/mysqld: ready for connections.
Version: '5.7.18-0ubuntu0.16.04.1'  socket: '/var/run/mysqld/mysqld.sock'  port: 3306  (Ubuntu)
2017-06-29T17:38:11.741496Z 0 [Note] Executing 'SELECT * FROM INFORMATION_SCHEMA.TABLES;' to get a list of tables using the deprecated partition engine. You may use the startup option '--disable-partition-engine-check' to skip this check. 
2017-06-29T17:38:11.741511Z 0 [Note] Beginning of list of non-natively partitioned tables
2017-06-29T17:38:11.882383Z 0 [Note] End of list of non-natively partitioned tables
2017-06-29T17:38:11.889889Z 5 [Note] Access denied for user 'root'@'localhost' (using password: NO)

我使用的是 Ubuntu 16.04 LTS。我不知道是什么在运行 SELECT,也不知道是什么在尝试以 root 用户身份登录。我不怀疑是恶意软件,因为这些是全新安装的机器。每次重启后,这些行都会立即出现。

我如何进一步调试正在运行 SELECT 的内容以及拒绝 root@localhost 访问的内容?我已关闭所有进程。

谢谢!

答案1

您使用的是 MySQL 5.7.18。参考手册中的注释第 22 章 分区

从 MySQL 5.7.17 开始,MySQL 服务器中的通用分区处理程序已弃用,并在 MySQL 8.0 中删除,当用于给定表的存储引擎需要提供自己的(“本机”)分区处理程序时。目前,只有数据库引擎InnoDB新开发银行 存储引擎可以。

使用具有非本机分区的表会导致 ER_WARN_DEPRECATED_SYNTAX警告。此外,服务器在启动时会执行检查以识别使用非本机分区的表;对于发现的任何表,服务器都会将消息写入其错误日志。

要禁用此检查,请使用--disable-partition-engine-check选项。

为了准备迁移到 MySQL 8.0,任何具有非本机分区的表都应更改为使用提供本机分区的引擎,或将其设为非分区。例如,要将表更改为 InnoDB,请执行以下语句:

ALTER TABLE table_name ENGINE = INNODB;

根据接下来的两行,您似乎没有这些表,因此您可能不必担心此问题,除非不成功的 root 登录与该测试有关。如果您想确定,请以 root 身份登录并手动执行测试中的查询,即(具有其他引擎的表):

SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE ENGINE NOT IN ('INNODB', 'NDB');

无论您想使用--disable-partition-engine-check手动测试之后的选项由您决定。但是,这只是几行日志,如果有人添加此类表,最好随时了解情况,直到升级到 MySQL 8.0。

答案2

这些信息会准确地告诉你发生的情况:

2017-06-29T17:38:11.741496Z 0 [Note] Executing 'SELECT * FROM INFORMATION_SCHEMA.TABLES;' to get a list of tables using the deprecated partition engine. You may use the startup option '--disable-partition-engine-check' to skip this check. 

换句话说,mysql 本身正在执行'SELECT * FROM INFORMATION_SCHEMA.TABLES;'。它这样做是为了获取使用已弃用的分区引擎的表的列表。

如果您不想这样做,您可以使用启动选项--disable-partition-engine-check跳过此检查。

相关内容