您的位置:首页 > 数据库 > MySQL

6. mysql log

2015-06-14 09:42 579 查看
1.error log

错误日志, 记录mysql服务启动时出现的问题, 文本文件

[mysqld_safe] #注意是写在这里

log-error=/var/log/mysqld/mysql-error.log -- mysqld文件夹要存在且chown mysql

该日志无法关掉

2.access log

查询(访问)日志, 记录客户端执行的所有语句,
文本文件

对于访问频繁的系统,
对性能影响较大, 建议关闭

show
variables like ‘%general_log%’;

[mysqld]

general_log=on

general_log_file=/var/log/mysqld/mysql-access.log
----连上后作一些操作, 然后查看关闭就
#注释这2行

3.bin log

二进制日志, 记录所有的ddl、dml语句, 不记select, 还用于复制, 非文本文件

[mysqld]

log_bin=/var/log/mysqld/mysql-bin
-- 日志文件的前缀

服务重启1次,
日志文件就新增1个(如mysql-bin.000002)

flush
logs;也会新增一个日志文件

日志文件的大小超过了max_binlog_size(单位是Byte,
默认1GB), 也会新增一个日志文件

显示日志文件:

show
master logs;

show
master status;

show variables like "%log_bin%"

查看二进制日志:

mysqlbinlog
mysql-bin.000001

mysqlbinlog mysql-bin.000001 -d ds -- 只显示ds数据库的

--start-datetime=”2012-10-10 9:10:0”
--stop-datetime=”2012-10-10 9:30:59” --
只显示这段时间之间的日志

--start-position="123"
--stop-position="456" -- at后的数字, 繁忙的在线系统, 同一时刻多人操作, 即同一时刻发生有多个dml,
这时可以用position来区分

如果只写开始, 则到日志最尾部,
如果只写结束, 则从日志最开头

-------------------------------------------------------------------------------------------------------------------------------



定期删日志文件是维护MySQL的一个重要工作内容

方法1:

reset master;

删除所有日志文件,
产生1个新日志文件, 重新从000001开始编号

方法2:

purge master logs to 'mysql-bin.000006';

编号000006之前的所有日志文件被删除

方法3:

[mysqld]

expire_logs_days=3(天) -- 重启服务, 从产生到过了3天后该文件将会被自动删除;默认是0,不删除

其他一些选项

[mysqld]

binlog_do_db=db1

binlog_do_db=db2 -- 没有显式指定的数据库将不会被记录

binlog_ignore_db=db1

binlog_ignore_db=db2 -- 没有显式指定的数据库将会被记录

set sql_log_bin = 0; -- 禁止将自己的操作记入二进制日志

4.slow log

慢日志, 文本文件, 记录所有执行时间超过long_query_time秒的语句
增删改查都会记

慢日志对于我们发现有性能问题的语句很有帮助,
建议打开并经常查看分析

[mysqld]

long_query_time=2(秒)

--
5.5

log_slow_queries=/var/log/mysqld/mysql-slow.log

--
5.6

slow_query_log=on

slow_query_log_file=/var/log/mysqld/mysql-slow.log

来自为知笔记(Wiz)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: