mysql第六章_第六章 mysql日志

第六章 mysql日志

一 错误日志

错误日志的默认存放路径是 mysql 存放数据的地方  hostname.err

1. 修改错误日志存放路径

[mysqld]

log-error=/data/mysql/mysql.log

2. 查看配置命令

show variables like "%log_error%";

3. 错误日志作用

记录mysql数据库的一般状态信息及报错信息,是我们对于数据库常规报错处理的常用日志

二 一般查询日志

1. 开启一般查询日志

[mysqld]general_log=ongeneral_log_file=/data/mysql/server2.log

2. 查看配置命令

show variables like '%gen%';

3. 一般查询日志作用

记录mysql所有执行成功的SQL语句信息,可以做审计用,但很少开启

三 二进制日志

1. 二进制日志都记录了什么

已提交的数据记录, 以event的形式记录到二进制文件中

2. 二进制记录格式的3种模式

① row 行模式,即数据行的变化过程 一般都是用这种

②  statement 语句模式 可能不准确 比如now()

③  mixed: 以上两者的混合模式

3. binlog的作用

备份恢复   复制

四 二进制日志管理

1.  开启二进制日志

① 会话级别临时关闭

set sql_log_bin=0

②全局打开二进制日志

[mysqld]

log-bin=/data/mysql/mysql-bin

2.二进制日志记录格式(建议是row)

[mysqld]binlog-format=ROW

3. 日志同步机制

[mysqld]sync_binlog=1

4.  二进制日志需要打开的配置

vim /etc/my.cnflog-bin=/data/binlog

binlog_format=row

sync_binlog=1

5. 查看设置

--查看binlog日志是否开启

show variables like '%log_bin%';--查看模式是否为row

show variables like '%binlog_format%';

6. 通过二进制日志修复数据

show binarylogs;

show binlog eventsin 'my-bin.000002'show master status;

mysqlbinlog --base64-output=decode-rows -v my-bin.000002

mysqlbinlog --start-position=120 --stop-position=721 my-bin.000002

mysqlbinlog --start-position=340 --stop-position=721 my-bin.000002 >/tmp/binlog.sql

读取二进制日志 修复数据

source /tmp/binlog.log

7. 删除二进制日志

默认情况下,不会删除旧的日志文件。

根据存在时间删除日志:SET GLOBAL expire_logs_days = 90;

…或者…

PURGEBINARY LOGS BEFORE now() - INTERVAL 3 day;

根据文件名删除日志:

PURGEBINARY LOGS TO 'mysql-bin.000010';

reset master;

五 慢日志

1. 功能

slow-log,记录所有条件内的慢的SQL语句

优化的一种工具日志。帮我们定位问题。

是将mysql服务器中影响数据库性能的相关SQL语句记录到日志文件

通过对这些特殊的SQL语句分析,改进以达到提高数据库性能的目的。

2. 慢日志设置

long_query_time --设定慢查询的阀值,超出次设定值的SQL即被记录到慢查询日志,缺省值为10s

slow_query_log  --指定是否开启慢查询日志

slow_query_log_file --指定慢日志文件存放位置,可以为空,系统会给一个缺省的文件host_name-slow.log

min_examined_row_limit --查询检查返回少于该参数指定行的SQL不被记录到慢查询日志

log_queries_not_using_indexes --不使用索引的慢查询日志是否记录到索引

[mysqld]slow_query_log=1slow_query_log_file=/data/slow/slow.loglong_query_time=0.5log_queries_not_using_indexes

3. 处理慢日志

mysqldumpslow命令

mysqldumpslow -s c -t 10 /data/slow/slow.logmysqldumpslow-s at -t 10 /data/slow/slow.log

这会输出记录次数最多的10条SQL语句,

其中:

-s 是表示按照何种方式排序

c、t、l、r分别是按照记录次数、时间、查询时间、返回的记录数来排序。

ac、at、al、ar,表示相应的倒叙。

-t 是top n的意思,即为返回前面多少条的数据;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值