在Linux系统中,MariaDB的日志管理主要包括以下几个方面:
错误日志记录了MariaDB服务器启动、运行和关闭过程中的错误信息。
查看错误日志:
sudo tail -f /var/log/mysql/error.log
或者使用journalctl
命令(如果使用systemd):
sudo journalctl -u mariadb.service -f
配置错误日志:
编辑/etc/my.cnf
或/etc/mysql/my.cnf
文件,找到[mysqld]
部分,设置以下参数:
[mysqld]
log_error = /var/log/mysql/error.log
查询日志记录了所有客户端与服务器之间的通信,包括SQL语句。
启用查询日志:
在my.cnf
中添加:
[mysqld]
general_log = 1
general_log_file = /var/log/mysql/query.log
禁用查询日志:
将general_log
设置为0。
慢查询日志记录了执行时间超过指定阈值的SQL语句。
启用慢查询日志:
在my.cnf
中添加:
[mysqld]
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow-query.log
long_query_time = 2 # 设置慢查询的时间阈值(秒)
log_queries_not_using_indexes = 1 # 记录未使用索引的查询
禁用慢查询日志:
将slow_query_log
设置为0。
二进制日志记录了对数据库执行的所有更改操作,用于数据复制、备份和恢复。
启用二进制日志:
在my.cnf
中添加:
[mysqld]
log_bin = /var/log/mysql/mysql-bin.log
server_id = 1 # 唯一标识符,用于主从复制
expire_logs_days = 10 # 日志保留天数
禁用二进制日志:
将log_bin
注释掉或删除。
中继日志用于从服务器接收主服务器的二进制日志,并将其应用到本地数据库。
my.cnf
中添加:[mysqld]
relay_log = /var/log/mysql/mysql-relay-bin.log
relay_log_recovery = 1 # 启用中继日志恢复
定期清理旧的日志文件以避免磁盘空间不足。
手动清理:
sudo rm /var/log/mysql/*.log
自动清理:
使用logrotate
工具来自动管理日志文件的轮转和清理。编辑/etc/logrotate.d/mysql
文件:
/var/log/mysql/*.log {
daily
missingok
rotate 7
compress
notifempty
create 640 root adm
}
sudo systemctl restart mariadb
通过以上步骤,你可以有效地管理和维护MariaDB的日志,确保数据库的正常运行和故障排查。