如何监听mysql执行的sql语句呢
如果想要在生产环境长时间监听 insert/update/delete之类的操作,建议在客户端/中间件层去做。
如果是定位问题时,监听一段时间的SQL语句,可以开启General Log,
开启监测所有SQL请求(生产环境不建议长时间开启,分析任务完成后可关闭general_log)
管理员登陆
$ mysql -u root -p
#设置存放路径
set global general_log_file=/data/log/mysql_general_log.log;
#设置开启general log, 1开启(0关闭),即时生效,不用重启MySQL
set global general_log=1;
若果只是想看慢查询的话,可以开启慢查询日志,生产环境可以开启。
启用慢查询日志记录 (建议生产环境开启)
vim /etc/mysql/mariadb.conf.d/50-server.cnf
或者 vim /etc/mysql/my.cnf
slow_query_log=1
log-queries-not-using-indexes
long_query_time=1
log-slow-queries=/data/log/mysql/log-slow-queries.log
超过1s的都认为是慢查询。 开启慢查询以后,可以在慢查询日志文件中查看运行慢的SQL,
$ tail -f /data/log/mysql/log-slow-queries.log
详情参考:MySQL查询监测