mysql记录所有sql语句

有时候,为了定位问题,需要讲mysql上操作的所有sql语句记录。

cat /etc/my.cnf

在mysql的配置文件中[mysqld]中增加如下记录:

general_log = 1

general_log_file = /var/lib/mysql/iZbp18qasm44xlfcjuuy76Z.log


mysql还提供记录查询慢的sql记录。

cat /etc/my.cnf

在mysql的配置文件中[mysqld]中增加如下记录:

slow_query_log = on
slow-query-log-file = /var/lib/mysql/slowquery.log

long_query_time = 2

ps:5.7和5.7以前的字段名称不一致。本配置为5.7的配置。


在MySQL 5.7.2 新增了 log_timestamps 这个参数,该参数主要是控制 error log、genera log,等等记录日志的显示时间参数,且默认安装后error_log,slow_log 日志时间戳默认为UTC,因此会造成与系统时间不一致,与北京时间相差8个小时

SHOW GLOBAL VARIABLES LIKE 'log_timestamps';
+---------------------+-------------------+
|Variable_name  |              Value   |
+---------------------+-------------------+
|log_timestamps |              UTC     |
+---------------------+-------------------+

因为log_timestamps  是一个GLOBAL的全局参数,所以直接在登录后去set全局参数,重启后就会直接失效

因此需要在mysql的配置文件中[mysqld]中增加一条log_timestamps的配置

log_timestamps=SYSTEM


你可能感兴趣的:(数据库)