1.概念:日志文件(log)就是一个跟踪记录的列表,它可以协助我们时刻掌握系统及应用服务的动作状态,在故障排查的时候提供最详细准确地信息,帮助我们快速查找原因,当中可以查询到数据库的运行情况、用户操作、错误信息等,可以为管理和优化提供必要的信息。
2.查询文件名称和路径位置:
show variables like ‘log_%’; – 查看日志是否开启及各个文件的名称和路径位置
SHOW MASTER LOGS; – 查找文件名称及大小
show binary logs; – 查找文件名称及大小
show master status; – 查看当前二进制日志文件状态
C:\ProgramData\MySQL\MySQL Server 8.0\my.ini – 根据my.ini文件查看log-bin的path也可以查看文件名称和路径位置
3.日志优缺点:
优点:精准锁定状态及问题
缺点:花费时间记录、占用磁盘空间
4.日志分为四类:错误日志、查询日志、二进制日志和慢查询日志
错误日志:记录MySQL服务的启动、运行或停止MySQL服务时出现的问题及一些错误信息记录。
启动和设置错误日志:C:\ProgramData\MySQL\MySQL Server 8.0\my.ini log-error=“PUYANG.err” 也可以调制时间和大小
expire_logs_days = 10 默认0,表示不删除
max_binlog_size = 100M 默认值是1GB,文件最大值,如超出会发生滚动(从新打开新文件记录)
查看日志内容:直接点开PUYANG.err查看即可
清除日志:直接删除PUYANG.err文件即可
查询日志:记录建立的客户端连接和执行的语句。
show variables like ‘%general%’; – 查看查询日志是否启动
启动和设置查询日志:set @@global.general_log=1; – 开启 set @@global.general_log=0; – 停止
查看日志内容:直接点开PUYANG.log查看即可
清除日志:直接删除PUYANG.log文件即可,命令行执行MySQLadmin -u root -p flush-logs重新生成日志文件
二进制日志:记录所有更改数据或有可能引起数据变更的语句,也包括发生时间、执行时长、操作数据等其它额外信息;
使用二进制日志的主要目的是数据库恢复和主从复制,以及审计(audit)操作。
启动和设置二进制日志:C:\ProgramData\MySQL\MySQL Server 8.0\my.ini log-bin=“PUYANG-bin” 也可以调制时间和大小
expire_logs_days = 10 默认0,表示不删除
max_binlog_size = 100M 默认值是1GB,文件最大值,如超出会发生滚动(从新打开新文件记录)
暂时停止使用:SET sql_log_bin = {0|1}; – 0停止,1恢复
查看日志内容:首先:cmd cd C:\Program Files\MySQL\MySQL Server 8.0\bin
之后:mysqlbinlog C:\ProgramData\MySQL\MySQL Server 8.0\Data\PUYANG-bin.000061 > C:\Users\puyang\1.sql;
如果出现uSuRXw8BAAAAeQAAAH0AAAABAAQAOC4wLjIxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC5K5FfEwANAAgAAAAABAAEAAAAYQAEGggAAAAICAgCAAAACgoKKioAEjQA
show variables like ‘%binlog%’; --查看binlog_format是不是row如果是,在my.ini改成binlog_format = STATEMENT
如果是中文显示乱码insert into a (id ,tname) values (1,‘鑰佸繕’) 先输入chcp 65001 (65001换成utf-8代码页,936 换成回默认GBK,437美国英语)
清除日志:RESET MASTER; – 全部清除 PURGE MASTER LOGS TO “PUYANG-bin.000061”; – 删除指定日志名
使用二进制恢复数据库:mysqlbinlog filename |mysql -uuser -ppass; – 执行恢复数据
慢查询日志:记录所有执行时间超过long_query_time的所有查询或不使用索引的查询,通过慢查询日志,可以找出执行时间较长、执行效率较低的语句,然后进行优化。
my.ini文件中的slow-query-log=1 # 日志开启
slow_query_log_file=“PUYANG-slow.log” # 日志名称
long_query_time=10 # 记录阀值时间,10秒
查看日志内容:直接点开PUYANG-slow.log查看即可
清除日志:直接删除PUYANG-slow.log文件即可,命令行执行MySQLadmin -u root -p flush-logs重新生成日志文件