mysql总共有6种日志文件(通过set global 设置的变量只是暂时生效,重启后就会失效,要想永久生效,必须配置mysql配置文件=====my.cnf)
1,查询日志:即记录mysql的select查询,默认是不开启的,也不推荐开启
查询该日志是否开启: show variables like "%general_log";
设置开启查询日志: set global general_log = "on"
2,慢查询日志:记录mysql查询中超过设定阀值的查询语句,默认是不开启的,推荐开启,可以帮助我们在一个项目运行之后对一个特定的sql进行捕捉,并进行针对性的进行sql优化,可以在mysql的配置文件中进行相关配置
slow_query_log=on //开启慢查询日志
slow_query_log_file= path+filename //设置慢查询文件
slow_query_time=3 //设置慢查询的时间,为3秒,也即执行时间超过3秒的sql语句会以日志的形式记录下来
3,二进制(binlog)日志:记录数据库变更日志,包括ddl和dml,如update,insert,delete和alter,可用于主从复制及增量的备份(利用偏移量和时间节点来回复数据),默认是不开启的,建议开启,可以在mysql的配置文件中进行相关配置(每重启一次都会生成一个binlog日志)
log_bin=mysql-bin //设置binlog日志文件名
server_id=1 //服务运行id
binlog_format = max //日志记录方式,有三种,sql,以sql方式,row,以行的方式,max,混合模式
二进制日志基本操作:
show master status 查看当前的二进制文件
show binlog events in "mysql-bin.00001" 查看特定的二进制文件
show binlog events 查看第一个二进制文件
show binary logs 查看所有的二进制文件
reset master 清除所有的二进制文件
flush logs 清除所有的日志文件
4,错误日志:mysql服务在运行的过程中发生的异常错误,这个异常不是sql的异常,而是指系统级异常,比如启动错误
5,中继日志:是从服务器的io线程将主服务器的binlog日志同步过来保存到本地,然后从服务器的sql线程读取本地的中继日志来实现与主服务器的同步
6,事务日志:事务日志分为重做日志和回滚日志
重做日志:事务已经提交,数据还没刷新到磁盘时宕机了,重启后会根据重做日志刷新到磁盘,保证数据的一致性
回滚日志:事务没有提交,重启后执行回滚日志;当我们执行rollback时(这两种情形会用到)
网友评论