有时候,为了定位问题,需要讲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