MySQL 的日志系统包含:普通查询日志、慢查询日志、错误日志(记录服务 器启动时、运行中、停止时的错误信息)、二进制日志(记录服务器运行过程中 数据变更的逻辑日志)、中继日志(记录从库 I/O 线程从主库获取的主库数据变 更日志)、DDL 日志(记录 DDL 语句执行时的元数据变更信息。在 MySQL 5.7 中 只支持写入文件中,在 MySQL 8.0 中支持写入 innodb_ddl_log 表中。在 MySQL5.7 中,只有普通查询日志、慢查询日志支持写入表中(也支持写入文件中),可以
通过 log_output=TABLE 设置保存到 mysql.general_log 表和 mysql.slow_log 表中, 其他日志类型在 MySQL 5.7 中只支持写入文件中。

general_log

general_log 表提供查询普通 SQL 语句的执行记录信息,用于查看客户端到底 在服务器上执行了什么 SQL 语句。

  • 缺省不开启
    1. show variables like 'general_log';
    image.png

    开启

    1. set global log_output='TABLE'; -- 'TABLE,FILE'表示同时输出到表和文件
    2. set global general_log=on;
    3. show variables like 'general_log';
    任意执行一个查询后
    1. select * from mysql.general_log
    image.png

    slow_log 表

    提供查询执行时间超过 long_query_time 设置值的 SQL 语句、未 使用索引的语句(需要开启参数log_queries_not_using_indexes=ON)或者管理语句(需要开启参数 log_slow_admin_statements=ON)。