Chinaunix首页 | 论坛 | 博客

OPS

  • 博客访问: 508062
  • 博文数量: 117
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1210
  • 用 户 组: 普通用户
  • 注册时间: 2015-05-05 14:50
个人简介

hellow 运维

文章分类

全部博文(117)

文章存档

2019年(1)

2018年(1)

2017年(45)

2016年(38)

2015年(32)

我的朋友

分类: 系统运维

2016-12-31 14:35:00


1.前言

作为运维,在和开发人员调试mysql数据库故障的时候,你一定碰到过这样的需求,就是输出mysql执行的所有语句,用来分析问题。默认情况下mysql记录语句的执行只是开启了binlog日志,但是binlog不会记录select语句,这个时候就需要打开数据库的general log来记录数据库执行的所有语句了,使用方式如下。

2.开启general日志

查看general日志没有开启

1
2
3
4
5
6
7
MariaDB [(none)]> show variables like 'general_log';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| general_log   | OFF   |
+---------------+-------+
1 row in set (0.00 sec)

使用如下命令开启

1
2
MariaDB [(none)]> set global general_log=on;
Query OK, 0 rows affected (0.01 sec)

再次查看日志已经打开

1
2
3
4
5
6
7
MariaDB [(none)]> show variables like 'general_log';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| general_log   | ON    |
+---------------+-------+
1 row in set (0.00 sec)

查看日志存放位置(目录位于datadir目录下)

1
2
3
4
5
6
7
MariaDB [(none)]> show variables like 'general_log_file';
+------------------+--------------+
| Variable_name    | Value        |
+------------------+--------------+
| general_log_file | c7-node2.log |
+------------------+--------------+
1 row in set (0.00 sec)

3.验证日志记录

执行一个查询数据库用户信息的语句。

1
2
MariaDB [(none)]> use mysql;
MariaDB [mysql]> select User,Host,Password from user;

查看日志记录内容:可以在文件末尾看到执行select的时间和执行的语句

1
2
3
4
5
6
7
8
9
10
11
[root@c7-node2 ~]# tail  /var/lib/mysql/c7-node2.log
            5 Field List    servers
            5 Field List    slow_log
            5 Field List    tables_priv
            5 Field List    time_zone
            5 Field List    time_zone_leap_second
            5 Field List    time_zone_name
            5 Field List    time_zone_transition
            5 Field List    time_zone_transition_type
            5 Field List    user
161217 21:59:07     5 Query select User,Host,Password from user


阅读(1050) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~