在Linux系统中,MariaDB的日志管理主要包括以下几个方面:
/etc/mysql/mariadb.conf.d/50-server.cnf
中配置:[mysqld]
log_error = /var/log/mysql/mariadb-error.log
log_error_verbosity = 3
SET GLOBAL general_log = 'ON';
SET GLOBAL general_log_file = '/var/log/mysql/mariadb-query.log';
永久配置( /etc/mysql/mariadb.conf.d/50-server.cnf
):[mysqld]
general_log = 1
general_log_file = /var/log/mysql/mariadb-query.log
general_log_output = FILE
SET GLOBAL slow_query_log = 'ON';
SET GLOBAL long_query_time = 2;
SET GLOBAL slow_query_log_file = '/var/log/mysql/mariadb-slow.log';
SET GLOBAL log_queries_not_using_indexes = 'ON';
SET GLOBAL log_bin = 'ON';
SET GLOBAL binlog_format = 'ROW';
SET GLOBAL expire_logs_days = 7;
tail -f /var/log/mysql/mariadb-error.log
tail -f /var/log/mysql/mariadb-query.log
tail -f /var/log/mysql/mariadb-slow.log
mysqlbinlog /var/log/mysql/mariadb-bin.log
为了避免日志文件过大,可以使用 logrotate
工具进行日志轮转。创建一个 logrotate
配置文件,例如 /etc/logrotate.d/mariadb
:
/var/log/mysql/*.log {
daily
rotate 7
missingok
compress
delaycompress
notifempty
create 640 mysql mysql
postrotate
if test -x /usr/bin/mysqladmin && \
/usr/bin/mysqladmin ping &/dev/null; then
/usr/bin/mysqladmin flush-logs
fi
endscript
}
这个配置文件会每天轮转日志文件,保留最近7天的日志,并对旧日志进行压缩。
定期清理日志文件可以释放磁盘空间。可以使用 logrotate
自动完成,或者手动删除旧日志文件:
# 删除超过30天的日志文件
find /var/log/mysql/ -type f -name "*.log" -mtime +30 -exec rm {} \;
可以使用监控工具(如 Prometheus、Grafana)来监控 MariaDB 的日志,及时发现和处理问题。
通过以上步骤,你可以有效地管理和维护 MariaDB 的日志,确保数据库的稳定运行和数据的安全性。