数据库
首页 > 数据库> > MySQL教程 - 日志(Logging)

MySQL教程 - 日志(Logging)

作者:互联网

更新记录
转载请注明出处。
2022年9月6日 发布。
2022年9月6日 从笔记迁移到博客。

日志

MySQL中日志分类

二进制日志 以二进制形式记录所有更改数据的语句,不包含查询语句
查询日志 记录建立的客户端连接和执行的语句
错误日志 记录MySQL服务的启动/运行/停止MySQL服务时出现的问题
慢查询日志 记录执行时间超过long_query_time的查询或不适用索引的查询

备注:默认只启动错误日志

二进制日志

启动和设置二进制日志

配置文件my.ini中[MySQLd]组下面设置

log-bin [= path / [filename]]
expire_logs_days = 10
max_binlog_size = 100M

说明:
log-bin 定义开启二进制, path和filename指定了日志文件的路径和名称
expire_logs_days 定义MySQL的过期时间
max_binlog_size 定义单个文件大小限制,默认1G,不得大于1G,不得小于4096B

查看是否启动二进制日志

show variables like 'log_bin';

结果:

+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_bin       | OFF   |
+---------------+-------+

查看文件个数及文件名

show binary logs;

查看文件详细内容

mysqlbinlog path/filename;

删除所有二进制文件

reset master;

删除指定二进制文件

purge {master|binary} logs to '文件名';
purge {master|binary} logs before '日期';

说明:
第一种按文件名删除
第二种按日期删除,格式20190702

使用二进制恢复数据库

mysqlbinlog [参数] filename | mysql -u用户名 -p密码;

参数支持:
--start-date 开始时间
--stop-date 结束时间
--start-position 开始位置
--stop-position 结束位置

实例:恢复到2019年7月2日12点前

mysqllbinlog --stop-date="2019-07-02 12:00:00" | mysql -uroot -p123456;

暂时停止二进制功能

set sql_log_bin = {0|1}

说明:
1是开启功能
0是关闭功能

错误日志

启动和设置错误日志

默认在数据库目录下,默认文件名为hostname.err
可以通过修改my.ini配置

[mysqld]
log-error = [path / [filename]]

修改配置后,需要重启mysql生效

查看错误日志

查询错误日志的存储路径和文件名

show variables like 'log_error';

结果:

+---------------+--------------------------+
| Variable_name | Value                    |
+---------------+--------------------------+
| log_error     | c:\wamp64\logs\mysql.log |
+---------------+--------------------------+

删除错误日志

错误日志是以文件形式存储的,可以直接删除

或者在MySQL客户端

mysql> flush logs;

查询日志

通用查询日志记录MySQL的所有用户操作,包括启动关闭服务/执行查询/更新语句等..

启动和设置通过查询日期

默认情况下并没有开启通用查询日志.可以通过修改my.ini配置

[mysqld]
log [ = path /[filename]]

查看通用查询日志

根据my.ini设置的路径文件名查看

删除通用查询日志

直接删除文件或执行

mysql> flush logs;

慢查询日志

记录查询时长超过指定时间的日志

可以找出执行时间较长执行效率较低的语句,然后进行优化

启动和设置慢查询日志

默认是关闭的,可以通过修改配置文件开启

[mysqld]
log-slow-queries [=path/[filename]]

查看慢查询日志

根据my.ini设置的路径文件名查看

删除慢查询日志

直接删除文件或执行

mysql> flush logs;

标签:Logging,logs,二进制,查询,MySQL,日志,log
来源: https://www.cnblogs.com/cqpanda/p/16660349.html