mysql开启sql查询语句,MySQL开启general_log查看执行的SQL语句

general log会记录下发送给MySQL服务器的所有SQL记录,因为SQL的量大,默认是不开启的。一些特殊情况(如排除故障)可能需要临时开启一下。

开启MySQL的general log

MySQL有三个参数用于设置general log:

general_log:用于开启general log。ON表示开启,OFF表示关闭。

log_output:日志输出的模式。FILE表示输出到文件,TABLE表示输出到mysq库的general_log表,NONE表示不记录general_log。

general_log_file:日记输出文件的路径,这是log_output=FILE时才会输出到此文件。

1、查看先是否开启了general log

mysql> show variables where Variable_name="general_log";

+---------------+-------+

| Variable_name | Value |

+---------------+-------+

| general_log  | OFF  |

+---------------+-------+

1 row in set (0.00 sec)

2、查看日志输出模式

mysql> show variables where Variable_name="log_output";

+---------------+-------+

| Variable_name | Value |

+---------------+-------+

| log_output  | FILE |

+---------------+-------+

1 row in set (0.00 sec)

3、查看日志输出路径

mysql> show variables where Variable_name="general_log_file";

+------------------+----------------------------+

| Variable_name  | Value           |

+------------------+----------------------------+

| general_log_file | /var/run/mysqld/mysqld.log |

+------------------+----------------------------+

1 row in set (0.00 sec)

4、设置日志模式为TABLE,FILE双模式

mysql> set global log_output='TABLE,FILE';

Query OK, 0 rows affected (0.00 sec)

5、开启general log

set global general_log=ON;

6、关闭general log

大多数情况是临时开启general log,需要记得关闭,并把日志的输出模式恢复为FILE。

set global general_log=OFF;

set global log_output='FILE'

general_log表

现在在mysql库的general_log表就可以查看到开启general log那段时间的SQL记录。

查看general_log的表结构:

mysql> show create table mysql.general_log\G

*************************** 1. row ***************************

Table: general_log

Create Table: CREATE TABLE `general_log` (

`event_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

`user_host` mediumtext NOT NULL,

`thread_id` int(11) NOT NULL,

`server_id` int(10) unsigned NOT NULL,

`command_type` varchar(64) NOT NULL,

`argument` mediumtext NOT NULL

) ENGINE=CSV DEFAULT CHARSET=utf8 COMMENT='General log'

1 row in set (0.00 sec)

查询得到

$select * from mysql.general_log limit 1 \G

*************************** 1. row ***************************

event_time: 2018-01-05 17:35:45

user_host: root[root] @ localhost []

thread_id: 89429

server_id: 2

command_type: Query

argument: select * from mysql.general_log

1 row in set (0.00 sec)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值