MySQL数据库日志知识

MySQL数据库日志分别为:
错误日志: -log-err
查询日志: -log
慢查询日志: -log-slow-queries
更新日志: -log-update
二进制日志: -log-bin

错误日志的介绍

MySQL的错误日志用于记录MySQL服务进程mysqld在启动/关闭或运行过程中遇到的错误信息。
错误日志的记录配置
MySQL的错误日志通常由mysqld或mysqld_safe程序产生,前文已经讲解过MySQL的启动原理,因此,可利用如下方法配置记录MySQL错误日志。
方法1:
在my.cnf配置文件中调整,注意,是在[mysqld_safe]或[mysqld]模块的下面进行配置。命令如下:
[mysqld]
log-error = /data/mysql/error.err
/data/mysql/error.err 都是自己手动创建的,记得修改所属的用户与所属的组为mysql ,或者修改操作权限
chown -R mysql:mysql /data/mysql
chmod -R 755 /data/mysql
方法2:在启动MySQL服务的命令里加入记录错误日志的参数。
示例如下:
log-error=/data/mysql/error/error.err
查看到的最终结果为:
show variables like ‘log_error%’;
修改文件夹的权限

慢查询日志介绍

简单地理解,慢查询日志(slow query log)就是记录执行时间超出指定值(long_query_time)或其他指定条件(例如,没有使用到索引,结果集大于1000行)的SQL语句。

慢查询日志重要参数配置
企业中常见的配置慢查询的参数为:
slow-query-log = ON ----慢查询开启开关
long_query_time = 2 ----记录大于2秒的SQL语句。
log_queries_not_using_indexes ---- 没有使用到索引的SQL语句。
slow-query-log-file = /data/mysql/slow/slow.log ----记录SQL语句的文件。
min_examined_row_limit = 800 ----记录结果集大于800行的SQL语句。
慢查询日志相关参数说明
在这里插入图片描述

二进制日志的介绍

二进制日志的作用是记录数据库里的数据被修改的SQL语句,一般为DDL和DML语句,例如含有insert、update、delete、create、drop、alter等关键字的语句
二进制日志的作用
二进制日志最重要的作用有2个,具体如下。
第一个是记录MySQL数据的增量数据,用来做增量数据库恢复,没有二进制日志功能,MySQL的备份将无法完整还原数据。
第二个是实现主从复制功能,具体见MySQL主从复制的相关内容。
二进制日志的配置
在/etc/my.cnf
log-bin=/data/mysql/bin/binlog.bin
[root@xwy data]# grep log_bin /etc/my.cnf
log_bin ----默认情况下记录日志前缀为“主机名-bin”
mysql> show variables like ‘log_bin’;
±--------------±------+
| Variable_name | Value |
±--------------±------+
| log_bin | ON | ----记录binlog开关。
±--------------±------+
1 row in set (0.00 sec)

mysql> show variables like ‘%log_bin’;
±--------------±------+
| Variable_name | Value |
±--------------±------+
| log_bin | ON | —记录binlog开关。
| sql_log_bin | ON | ----临时不记录binlog开关。
±--------------±------+
2 rows in set (0.00 sec)

有个参数可以实现在开启binlog功能的前提下,临时不记录binlog,示例如下:
mysql> set session sql_log_bin = OFF; ----临时停止记录binlog,注意是session级别,不影响其他会话。
Query OK, 0 rows affected (0.00 sec)
mysql> show variables like ‘%log_bin’;
±--------------±------+
| Variable_name | Value |
±--------------±------+
| log_bin | ON |
| sql_log_bin | OFF | ----已关闭。
±--------------±------+
2 rows in set (0.00 sec)

mysql> create database stu; ----建库测试。
Query OK, 1 row affected (0.00 sec)

mysql> show binary logs; ----查看binlog文件列表及位置点。
±------------------±----------+
| Log_name | File_size |
±------------------±----------+
| stu-bin.000001 | 143 |
| stu-bin.000002 | 168 |
| stu-bin.000003 | 168 |
| stu-bin.000004 | 666 |
| stu-bin.000005 | 211 | ----最新的binlog文件及位置点,也可以通过“show master status;”来确定。
±------------------±----------+
5 rows in set (0.00 sec)
mysql> system mysqlbinlog stu-bin.000005|grep “stu” ----过滤binlog文件,没有记录binlog。
mysql> set session sql_log_bin = On; ----开启开关。
Query OK, 0 rows affected (0.00 sec)
mysql> drop database stu; ----删除数据库。
Query OK, 0 rows affected (0.00 sec)
mysql> system mysqlbinlog stu-bin.000005|grep “stu” ----继续过滤,发现记录了binlog。

是否启用了日志
mysql>show variables like ‘log_%’;

怎样知道当前的日志
mysql> show master status;

显示二进制日志数目
mysql> show master logs;

看二进制日志文件用mysqlbinlog
shell>mysqlbinlog mail-bin.000001
或者shell>mysqlbinlog mail-bin.000001 | tail

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值