mysql的几种日志

171 阅读1分钟

Linux系统:CentOS7
mariadb:10.2.37
安装方式:命令安装 yum install

1. 通用日志

general log 记录数据库的通用操作,包括错误的sql语句。

show variables like 'general%'
# general_log_file=/data/logs/general.log

默认关闭[off],此处笔者已在配置文件中打开。 image.png 也可将日志输出到表中,默认数据库mysql带有general_log 表。

# 配置文件中修改
log_out=table

image.png

2. 错误日志

error log,记录错误信息输出。

show global variables like 'log_error'

路径可在配置文件中定义,添加 log_error=/path/to/log_file_name image.png

3. 事务日志

transaction log,顾名思义记录事务操作的日志。
查看事务日志相关配置

show variables like '%innodb_log%';

# innodb_log_file_size      定义日志文件大小
# innodb_log_files_in_group 生成对应几个日志文件,记录日志时,在对应几个日志文件中轮询记录。   
# innodb_log_group_home_dir   日志文件的路径

image.png

image.png 日志文件最好是和数据库分开存放,单独磁盘,比如:更改日志默认路径到/data/logs存放。

vi /etc/my.cnf.d/server.cnf
# 在mysqld 下增加
innodb_log_group_home_dir=/data/logs

mkdir /data/logs
chown mysql.mysql /data/logs
systemctl restart mariadb

对应路径下生成 image.png

4. 二进制日志

slow query log 记录数据库的增删改,依托备份,根据二进制日志,可重放数据库的修改。

sql_log_bin #默认启用
log_bin=/path/to/file # 定义路径
# 以上两参数都启用即启用。

5. 慢查询日志

slow query log 记载查询时间长记录,可定义时间。

show variables like 'long%'
# 启用
slow_query_log
# 修改时间
long_query_time=xx  

默认10s

image.png