mysql日志管理

mysql日志(默认存放在datadir):

同大多数关系型数据库一样,日志文件是MySQL数据库的重要组成部分。MySQL有几种不同的日志文件,通常包括错误日志文件,二进制日志,查询日志,慢查询日志,等等。这些日志可以帮助我们定位mysqld内部发生的事件,数据库性能故障,记录数据的变更历史,用户恢复数据库等等。
1.错误日志 --错误日志,记录mysql服务端在运行时产生的错误信息
以及mysql启动和关闭时的日志信息
2.查询日志 --select * from xxx; show databases;记录建立的客户端连接和执行的语句
3.慢查询日志 --慢查询时间阀值,以秒为单位,如果超过这个阀值就是慢查询
4.binlog二进制日志 --记录对数据库增、删、改的SQL操作,可以使用这个日志做增量备份
5.事务日志 --每次增、删、改的SQL操作时,会把操作SQL语句写在事务日志,只innodb存储引擎才支持事务日志
6.relay-binlog --主从复制日志,从机器上从主机器复制过来日志,根据日志来同步数据。 记录所有更改数据的语句。还用于复制。

查询日志

# 查看mysql版本
mysql> show variables like '%version%';  
+-------------------------+------------------------------+
| Variable_name           | Value                        |
+-------------------------+------------------------------+
| innodb_version          | 5.6.37                       |
| protocol_version        | 10                           |
| slave_type_conversions  |                              |
| version                 | 5.6.37                       |
| version_comment         | MySQL Community Server (GPL) |
| version_compile_machine | x86_64                       |
| version_compile_os      | Linux                        |
+-------------------------+------------------------------+
7 rows in set (0.01 sec)
# 查看查询日志系统变量
mysql>  show variables like '%general%'; 
+------------------+-------------------------------------+
| Variable_name    | Value                               |
+------------------+-------------------------------------+
| general_log      | OFF                                 |
| general_log_file | /var/lib/mysql/vagrant-centos65.log | #没有开启的情况下不会有这个文件
+------------------+-------------------------------------+
2 rows in set (0.00 sec)
# 开启查询日志
mysql>  set @@global.general_log=1;  
Query OK, 0 rows affected (0.00 sec)
#查看查询日志
[root@vagrant-centos65 mysql]# cat vagrant-centos65.log 
/usr/sbin/mysqld, Version: 5.6.37 (MySQL Community Server (GPL)). started with:
Tcp port: 3306  Unix socket: /var/lib/mysql/mysql.sock
Time                 Id Command    Argument
170929 15:37:08    20 Query     show variables like '%general%'
170929 15:37:12    20 Query     set @@global.general_log=0
/usr/sbin/mysqld, Version: 5.6.37 (MySQL Community Server (GPL)). started with:
Tcp port: 3306  Unix socket: /var/lib/mysql/mysql.sock
Time                 Id Command    Argument
170929 15:38:37    20 Query     show databases
170929 15:38:38    20 Query     SELECT DATABASE()
                   20 Init DB   aaaa
                   20 Query     show databases
                   20 Query     show tables
                   20 Field List        t1 
                   20 Field List        t2 
                   20 Field List        t3 
170929 15:38:50    20 Query     show tables
170929 15:38:54    20 Query     select * from t1
170929 15:38:56    20 Query     select * from t2
170929 15:38:59    20 Quit

错误日志

mysql 启动和关闭 ,报错

mysql>  show variables like '%error%';
+--------------------+------------------------------+
| Variable_name      | Value                        |
+--------------------+------------------------------+
| error_count        | 0                            |
| log_error          | /data2/rhel6.example.com.err |
| max_connect_errors | 10                           |
| max_error_count    | 64                           |
| slave_skip_errors  | OFF                          |
+--------------------+------------------------------+
5 rows in set (0.00 sec)

[root@rhel6 ~]# vim /data2/rhel6.example.com.err 
[root@rhel6 ~]# : > /data2/rhel6.example.com.err 
[root@rhel6 ~]# mysqladmin -uroot shutdown
[root@rhel6 mysql-glibc]# ./bin/mysqld_safe &


模拟故障:
[root@rhel6 data2]# mkdir bak
[root@rhel6 data2]# mv mysql bak/
[root@rhel6 mysql-glibc]# mysqladmin -uroot shutdown

[root@rhel6 data2]# cd /opt/mysql-glibc/
[root@rhel6 mysql-glibc]# ./bin/mysqld_safe &

[root@rhel6 mysql-glibc]# cat /data2/rhel6.example.com.err 
 [ERROR]
 [root@rhel6 mysql-glibc]# cd /data2/
 [root@rhel6 data2]# mv bak/mysql/ ./

 [root@rhel6 mysql-glibc]# ./bin/mysqld_safe &

二进制日志(binlog日志)

二进制日志(又叫binlog日志)记录了所有增删改语句,但是不包括数据查询语句,语句是以“事件”的形式保存的,它描述数据更改的过程。该日志的两个主要功能是:数据的恢复与数据的复制。
数据的恢复:MySQL本身具备数据备份和恢复功能。比如,我们每天午夜12:00进行数据的备份。如果某天,下午13:00,数据库出现故障,导致数据库内容丢失。我们可以通过二进制日志解决这个问题。解决思路是,可以先将前一天午夜12:00的数据备份文件恢复到数据库,然后再使用二进制日志回复从前一天午夜12:00到当天13:00对数据库的操作。
数据复制:MySQL支持主从服务器间的数据复制功能,并通过该功能实现数据库的冗余机制以保证数据库的可用性和提高数据库德性能。MySQL正是通过二进制日志实现数据的传递。主服务器上的二进制日志内容会被发送到各个从服务器上,并在每个从服务器上执行,从而保证了主从服务器之间数据的一致性。

mysql>  show variables like '%bin%';   #查看二进制日志的参数
+-----------------------------------------+----------------------+
| Variable_name                           | Value                |
+-----------------------------------------+----------------------+
| binlog_cache_size                       | 32768                |   #    为每个session 分配的内存,在事务过程中用来存储二进制日志的缓存。
| binlog_direct_non_transactional_updates | OFF     |
| binlog_format                           | STATEMENT         |
| binlog_stmt_cache_size                  | 32768             |
| innodb_locks_unsafe_for_binlog          | OFF           |
| log_bin                                 | OFF                            |
| log_bin_trust_function_creators         | OFF              |
| max_binlog_cache_size | 18446744073709547520 |
| max_binlog_size                         | 1073741824         |
| max_binlog_stmt_cache_size|18446744073709547520 |
| sql_log_bin                             | ON                            |
| sync_binlog                             | 0                               |
+-----------------------------------------+----------------------+
12 rows in set (0.00 sec)

mysql> set global log_bin=on;
ERROR 1238 (HY000): Variable 'log_bin' is a read only variable
  • 开启二进制日志
#binary log
log-bin  =      /abc/logs/mysqld-bin
log-bin-index = /abc/logs/binlog_index
image.png

重启一下mysql 二进制日志就已经开启了

  • 查看二进制日志
image.png
  • binlog日志属性
    mysqld-bin.000001 | 三种情况会产生新的日志 1.超过1G 2.关闭mysqld 3.截断日志
    mysql> flush logs; --截断日志 会重新生成一个Binlog日志文件
image.png

注意:
最后一个日志就是当前使用的日志
二进制日志只记录 增删改, 不会记录查询的语句

二进制日志管理:

mysql> show binary logs;                    --查看当前所有的二进制日志
mysql> PURGE BINARY LOGS BEFORE '2012-03-26 16:21:00';
mysql> purge binary logs to 'mysqld.000005';        --删除mysqld.000005以前所有的日志,但不删除日志终结点
shell>mysqlbinlog /data2/mysqld.bin00001        --查看binlog文件中的内容
shell> mysqladmin  -uroot -p456 flush-logs 截断日志
mysql> show master status   --查询当前使用哪个二进制日志
mysql> flush logs;      --截断二进制日志
mysql> flush master;    --清空二进制日志


log_slow_queries=/mysql/logs/slow   --慢查询日志
long-query-time=1               --只要超过1秒的查询将被记录下来,以便被做调优时做参考。
  • 慢查询日志
    慢查询日志是记录所有执行时间超过参数long_query_time(单位:秒),的SQL语句日志。为了获得表锁,而等待的时间,不算执行时间。我们可以通过log-slow-queries=[file_name]选项来启动慢查询日志功能。和前面的日志一样,如果没有指定file_name,那么日志目录在datedir目录下,且默认的名字为host_name-slow.log。我们可以通过慢查询日志的分析,来优化我们的SQL语句和建立新的索引达到优化数据库的作用.
  • 查询慢查询日志


    image.png
  • 开启慢查询日志


    image.png
  • 设置慢查询日志阈值
image.png

永久开启慢查询日志和

[root@rhel6 logs]# vim /etc/my.cnf 
#slow log
slow_query_log=on
slow_query_log_file=/abc/logs/slow.log
long_query_time=1
---
/etc/init.d/mysqld stop
/etc/init.d/mysqld start
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 157,298评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,701评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 107,078评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,687评论 0 202
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,018评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,410评论 1 211
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,729评论 2 310
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,412评论 0 194
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,124评论 1 239
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,379评论 2 242
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,903评论 1 257
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,268评论 2 251
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,894评论 3 233
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,014评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,770评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,435评论 2 269
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,312评论 2 260

推荐阅读更多精彩内容