MySQL查看实时执行的SQL语句
MySQL默认不能实时查看执行的SQL语句,因为这会消耗一定的资源。
要开启这个功能,稍微配置一下,打开这个LOG记录就可以了。
1查看LOG功能
首先,查看是否已经开启实时SQL语句记录。
mysql>SHOWVARIABLESLIKE"general_log%";
如下general_log值为OFF说明没有开启:
+------------------+----------------------------------+ |Variable_name|Value| +------------------+----------------------------------+ |general_log|OFF| |general_log_file|/var/lib/mysql/galley-pc.log| +------------------+----------------------------------+ 2rowsinset(0.00sec)
2打开LOG功能
2.1临时开启
如下,打开实时记录SQL语句功能,并指定自定义的log路径:
mysql>SETGLOBALgeneral_log='ON'; mysql>SETGLOBALgeneral_log_file='/var/log/mysql/general_log.log';
这两个命令在MySQL重启后失效,为临时方法。
说明:这个文件会随着访问的增加而不断变大,所以生产环境建议临时开启,用完及时关闭。
2.2永久开启
永久有效需要配置my.cnf文件,加入下面两行:
general_log=1 general_log_file=/var/log/mysql/general_sql.log
重启MySQL生效。
3实时查看
过一小段时间后,就可以导出查看/var/lib/mysql/sql_statement.log文件了,里面记录了所有执行的SQL语句。
如果要实时查看该文件的改动,在Linux系统用tail命令:
$tail-f/var/lib/mysql/general_sql.log
另外,也可以用BareTail软件实时查看。
参考资料:
- 查看Mysql实时执行的Sql语句