天天看点

mysql日志

mysql日志

查看mysql版本

1. select version();

2. status;

1.错误日志

错误日志文件位置:如果在配置文件中没有指定,则文件名为hostname.err

可通过my.cnf文件进行配置

[mysqld_safe]

log-error=/var/log/mysql_err.log

通过echo >/var/log/mysql_err.log 清空文件

perror errno(错误日志报的错误代码) 查看错误描述

在win下是my.ini配置文件

当是在wamp环境下时

放在

[wampmysqld]

下生效

2.通用查询日志

set global general_log=1;

或在配置里

general-log-file=path/filename

generl-log=1

通过查询

show variables like "%general_log%" ;查看上面2个选项的开启状态

[mysqld]

general-log-file=D:/wamp/bin/mysql/mysql5.5.20/hk_log/general.log

general-log=1

3.慢查询日志

相关参数

slow_query_log=on|off

slow_query_log_file=filename

long_query_time=2(单位秒)

long-queries-not-using-indexes= filename (所有没有使用到索引的查询语句)

min_examined_row_limit=1000

记录由于查找了多余1000次而引发的慢查询

log-slow-admin-statements

记录那些慢的optimize table,analyze table 和alter table语句

log-slow-slave-statements

由于slave所产生的慢查询

开启慢查询

set global slow_query_log=1

set long_query_time=2

select sleep(3);

慢查询分析工具

mysqldumpslow filename

mysqlsla filename

percona-toolkit 中pt-query-digest

4.二进制日志

查看数据库变更历史

数据库增量备份

数据库灾难恢复

mysql复制

set  global.log_bin=1 (?)

在配置文件里开启

log_bin=D:/wamp/bin/mysql/mysql5.5.20/hk_log/logbin       (不写 或者文件路径)

max-binlog-size=50m (设置单个二进制文件的最大值,不写值得话单位为字节,1m以下的设置不上)

binlog-do-db与binlog-ignore-db

指定(逗号分隔)二进制文件记录哪些数据库操作

binlog-cache-size=10m

设定二进制日志缓存大小

sync-binlog=N

每隔N秒将缓存中的二进制日志记录写回硬盘。默认0

不过你会经常陷入group commit函数与I/O二选一的矛盾

如果在replication环境中,由于考虑到耐久性和一致性,需要设置为1

同时还要设置 innodb_flush_log_at_trx_commit=1

及innodb-support-xa=1 (默认开启)

暂停二进制日志

mysql>set sql_log_bin=0|1

查看二进制日志(退出mysql执行)

mysqlbinlog 日志名称

mysqlbinlog -uroot -p D:/wamp/bin/mysql/mysql5.5.20/data/hkui-bin.000001

查看第一个binlog文件的内容

show binlog events;

mysql日志

查看指定binlog文件的内容

show binlog events in "二进制日志文件名"

这个二进制日志文件名 不是绝对路径,是到配置文件里找log_bin的值,然后只去文件名

比如 log_bin=D:/wamp/bin/mysql/mysql5.5.20/hk_log/my_bin

只能是

mysql>show binlog events in "my_bin.000001";

而不可以是绝对路径

mysql日志

如果配置里没那个文件 即使磁盘上有那个文件 也是找不到的

查看当前正在写入的binlog文件

show master status \G

mysql日志

获取binlog文件列表

show binary logs;

mysql日志

二进制日志的格式

binlog_format

mixed

statement(记录sql语句)

row(事务性二进制日志 二进制格式 最为完整,不止记录语句本身,还记录由语句引发的触发器 等操作)

mysqlbinlog 命令参数

--start-datetime=name (精确到秒)

--stop-datetime=name

-j,--start-position=#

--stop-position=#

IT

继续阅读