目录
? ? ? ? 记录MySQL在启动和停止时,以及服务器运行过程中发生的严重错误的相关信息,当数据库出现故障导致服务不可用时,应该先查询错误日志。
? ? ? ? 错误日志默认开启,默认存储路径为/var/log/,默认日志文件名为:mysqld.log
????????简称BINLOG日志,记录了所有的DDL(数据库定义语言)和DML(数据操作语言)语句,但是记录SELECT语句和SHOW语句。
- 灾难时恢复数据
- MySQL的主从复制
?MySQL8版本是默认开启的
log_bin_basename对应的是存放路径,路径最后的binlog是文件前缀,一般第一个文件是binlog0001.log,第二个是binlog0002.log,类似,不知道中间几个0,哈哈哈
- statement格式:记录的是修改数据的SQL
- row格式:记录修改前和修改后的数据
- mixed格式:混合模式,默认采用statement,特殊情况采用row格式
mysqlbinlog [参数] 文件名
参数选项:
- -d:指定数据库名称,只列出指定数据库数据的相关信息
- -o:忽略掉日志中的前n行命令。
- -v:将行数据转变为SQL语句。
- -vv:将行数据转变为SQL语句,并且带有注释
- reset master:删除全部
- purge master logs to 'binlog.*****':删除指定编号之前的日志文件
- purge master logs before 'yyyy-mm-dd hh24:mi:ss':删除指定日期之前的所有日志文件
?可以设置过期时间,默认是30天:
? ? ? ? 查询日志记录了客户端的所有操作语句,而二进制不包含查询数据的SQL语句。默认情况下不开启。
开启方式:
#修改配置文件 /etc/my.cnf,0表示关闭,1表示开启
general_log=1
#指定日志文件名
general_log_file=filename
#开启慢日志
slow_query_log=1
#设置慢日志标准,以下配置表示超过2秒即为慢SQL
long_query_time=2
#记录执行比较慢的SQL语句
log_slow_admin_statements=1
#记录执行较慢的未使用索引的语句
log_queries_not_using_indexes=1
? ? ?