更新记录
转载请注明出处。
2022年9月6日 发布。
2022年9月6日 从笔记迁移到博客。
二进制日志 以二进制形式记录所有更改数据的语句,不包含查询语句
查询日志 记录建立的客户端连接和执行的语句
错误日志 记录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;