更新记录
转载请注明出处。
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
From: https://www.cnblogs.com/cqpanda/p/16660349.html