200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > mysql5.6 错误日志_MySQL5.6.36 日志文件之错误日志 二进制日志 慢日志

mysql5.6 错误日志_MySQL5.6.36 日志文件之错误日志 二进制日志 慢日志

时间:2020-01-07 18:29:48

相关推荐

mysql5.6 错误日志_MySQL5.6.36 日志文件之错误日志 二进制日志 慢日志

(一)错误日志配置

vim /etc/f

log-error=/var/log/mysql.log

查找错误日志位置

show variables like '%log_error%'

一般查询日志一般都不开启,这样会导致日志文件异常的大,审计的时候会开启

(二)二进制日志配置

mkdir /data/binlog -p

chown -R mysql.mysql /data/binlog

set sql_log_bin=0 //做数据备份或恢复时,临时关闭二进制日志

vim /etc/f //控制开启二进制日志

[mysqld]

log-bin=/data/binlog/my-bin //my-bin是二进制日志文件名的前缀,这也是永久开启二进制日志的方式

binlog_format=row //statement格式直接记录操作的语句,量级小,但函数类语句不准确;row行模式更加准确,量级大,建议用row模式

sync_binlog=1 //1表示每次提交commit时,就会将数据写入磁盘。一般设置成1

#粗略查看二进制日志

show binary logs;

show binlog events in '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 //可以通过截取部分二进制日志,对误删除等操作进行数据库的恢复

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

#刷新日志

flush logs;

#设置二进制日志保留时间

vim /etc/f

expire_logs_days=90

#删除二进制:

默认情况下,不会删除旧的日志文件,二进制日志太重要了!

根据存在时间删除日志:

SET GLOBAL expire_logs_days = 90;

…或者…

PURGE BINARY LOGS BEFORE now() - INTERVAL 3 day; //手工删除二进制日志

根据文件名删除日志:

PURGE BINARY LOGS TO 'mysql-bin.000010'; //手工删除二进制日志

reset master; //清空所有二进制日志,然后从新开始记录二进制日志

(三)MySQL的慢查询日志

功能:

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

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

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

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

慢日志设置:

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: 不使用索引的慢查询日志是否记录到索引

配置例子: //一般只开启下列4项就可以了

slow_query_log=1 //开启慢日志

slow_query_log_file=/data/slow/slow.log //data/slow目录提前创建好,权限等 mkdir -p /data/slow, chown -R mysql:mysql /data/slow,否则没法生成文件

long_query_time=0.5 //0.5秒

log_queries_not_using_indexes //记录慢查询里面,不使用索引的语句记录下来

处理慢日志:

mysqldumpslow命令

mysqldumpslow -s c -t 10 /data/slow/slow.log //按次数排序

mysqldumpslow -s at -t 10 /data/slow/slow.log //按时间排序,倒序

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

其中:-s是表示按照何种方式排序c、t、l、r分别是按照记录次数、时间、查询时间、返回的记录数来排序。

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

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

慢日志演示实例:

插入数据

mysql> create table city_bak select from city; //创建新表,并且把city表输入导入

mysql> insert into city_bak select from city_bak;

mysql> select sleep(3);

mysql慢日志常用工具:(已经帮你排序好了,只需要逐条优化即可)

pt-query-diagest (是percona-toolkit工具箱里面的工具)

mysqlsla

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。