(十)MySQL日志

1)日志种类

error log:错误日志 拍错 /var/log/mysqld.log 这是yum安装mysqld生成error默认目录
bin blog 二进制日志 备份 增量备份,记录DDL,DML,DCL语句,不记录DQL语句
relay log:中继日志 复制 主从复制,从接收日志放入到relay log中
slow log:慢查询日志 调优 调优,查询时间超过指定
general_log:普通查询日志 DQL语句

2)错误日志,默认开启

#vim /etc/my.cnf
[mysqld]
log-error=/var/log/mysqld.log    

3)二进制日志、

  • 定义
#vim /etc/my.cnf
[mysqld]
log-bin=/data/mydata/mysql-bin/master    \这个目录属组是mysql,如果mysql用户没有权限,数据库重启不正常
server-id=1
mkdir -pv /data/mydata/mysql-bin/
chown -R mysql.mysql /data/mydata/mysql-bin/
systemctl restart mysqld 
# ll /data/mydata/mysql-bin/
total 8
-rw-r----- 1 mysql mysql 154 Apr 24 07:32 master.000001
-rw-r----- 1 mysql mysql  37 Apr 24 07:32 master.index
  • 查看二进制日志文件:只记录DDL,DML,DCL语句
    mysqlbinlog -v /data/mydata/mysql-bin/master.000001
  • 刷新截断二进制日志文件
    方法一:重启mysql
    方法二:mysql> flush logs;
    方法三:mysql> reset master; 注意:reset master删除所有的binlog日志
  • 暂停DDL,DML,DCL语句记录到二进制日志文件
    mysql >set sql_log_bin=0; 暂停
    mysql >set sql_log_bin=0; 不暂停
  • 截取binlog:主要用于数据库恢复
    all:mysqlbinlog master.000001
    时间戳:mysqlbinlog master.000001 --start-datetime="" --stop-datetime=""
    position:mysqlbinlog master.000001 --start-position=1 --stop-position=300

4)慢查询日志

  • 定义
#vim /etc/my.cnf 
[mysqld]
slow_query_log=1
slow_query_log_file=/data/mydata/mysql-slow/slow.log
long_query_time=1
mkdir -pv /data/mydata/mysql-slow
chown -R mysql.mysql /data/mydata/mysql-slow
systemctl restart mysqld
  • 测试慢查询日志
    mysql>select benchmark(50000000,2*3);
  • 验证
/usr/sbin/mysqld, Version: 5.7.22-log (MySQL Community Server (GPL)). started with:
Tcp port: 0  Unix socket: /var/lib/mysql/mysql.sock
Time                 Id Command    Argument
# Time: 2018-04-24T13:20:59.174030Z
# User@Host: root[root] @ localhost []  Id:     2
# Query_time: 1.007382  Lock_time: 0.000000 Rows_sent: 1  Rows_examined: 0
SET timestamp=1524576059;
select benchmark(100000005,2*3);
原文地址:https://www.cnblogs.com/lovelinux199075/p/8933799.html