mysql日志初探

mysql里最常用的日志有4种,分别是:错误日志,二进制日志,查询日志以及满查询日志.

1.错误日志会记录当mysql启动和关闭以及运行中的错误信息,可以使用

--log-error[=file_name]来指定错误日志存放文件.当mysql server异常的时候应该首先查看该日志.其实里面也没什么,我英语四级没过,配上词霸目前为止还没有碰到解决不了的问题,呵呵.默认是存放在datadir里的主机名.err.

2.二进制日志存放了所有的ddl和dml操作记录

--log-bin[=file_name]选项启动时,mysqld写入包含所有更新数据的SQL命令的日志文件。如果未给出file_name值, 默认名为-bin后面所跟的主机名。二进制日志并不可以直接查看,需要客户端工具mysqlbinlog log-file 查看

mysqld在每个二进制日志名后面添加一个数字扩展名。每次你启动服务器或刷新日志时该数字则增加。如果当前的日志大小达到max_binlog_size,还会自动创建新的二进制日志。如果你正使用大的事务,二进制日志还会超过max_binlog_size:事务全写入一个二进制日志中,绝对不要写入不同的二进制日志中。

为了能够知道还使用了哪个不同的二进制日志文件,mysqld还创建一个二进制日志索引文件,包含所有使用的二进制日志文件的文件名。默认情况下与二进制日志文件的文件名相同,扩展名为'.index'。你可以用--log-bin-index[=file_name]选项更改二进制日志索引文件的文件名。当mysqld在运行时,不应手动编辑该文件;如果这样做将会使mysqld变得混乱。

可以用以下语句删除二进制日志

reset master;#删除所有二进制日志

purge master logs to 'mysql-bin.******';#删除******编号之前的二进制日志

purge master logs before 'yyyy-mm-dd hh24:mm:ss'#删除指定日期之前的日志

还可以设置--expire_logs_days=*;#设置日志过期天数,过期自动删除.

--binlog-do-db=db_name#指定数据库开启二进制日志,类似的有ignore.

innodb有

--innodb-safe-binlog以及--sync-binlog=n(每写n次日志同步磁盘)

可以通过set sql_log_bin=0禁用二进制日志.

3.查询日志,记录所有查询语句,二进制日志不记录之查询的语句

--log[=file_name]可以启动查询日志,默认是在datadir里的主机名.log,由于会消耗大量磁盘io资源,一般情况下建议禁用.

4.慢查询日志

--log-slow-queries[=file_name]默认是在datadir下的主机名.slow.log

--log-short-format#忽略掉不使用索引的慢查询

--log-slow-admin-statements#将记录慢管理语句

set long_query_time=n;#设定慢查询的时间,单位为秒.

建议使用客户端工具mysqldumpslow来查看满查询日志.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值