MariaDB-Mysql 服务器正在记录所有内容,有时日志会达到 100gb 以上,并且会一直增长,直到 logrotate 轮换它们。我希望 MySQL 只记录必要的内容,例如错误,而不是警告或信息(或类似的东西,我不太了解 Mysql 日志记录策略)。我该怎么做?
答案1
如果这是将数据复制到其他系统的主服务器,则日志肯定会很快变得很大。据我所知,信息消息无法被抑制,但您可以关闭警告消息,如下所示:
root
以管理员身份或具有管理员权限的用户身份连接到数据库- 禁用警告日志记录:
SET GLOBAL log_warnings=0;
- 监控日志
如果这正是您想要的,那么您将需要更新my.cnf
文件以添加到log_warnings=0;
某处,以便该设置在重新启动后仍然有效。
如果你想减少全部尽可能多地记录日志,那么您将希望看到写入各个日志文件的内容:
SHOW VARIABLES LIKE '%log%';
这会给你类似这样的结果:
+---------------------------------+------------------------------+
| Variable_name | Value |
+---------------------------------+------------------------------+
| back_log | 50 |
| binlog_cache_size | 65535 |
| expire_logs_days | 0 |
| innodb_flush_log_at_trx_commit | 1 |
| innodb_locks_unsafe_for_binlog | OFF |
| innodb_log_arch_dir | |
| innodb_log_archive | OFF |
| innodb_log_buffer_size | 1048576 |
| innodb_log_file_size | 5242880 |
| innodb_log_files_in_group | 2 |
| innodb_log_group_home_dir | ./ |
| innodb_mirrored_log_groups | 1 |
| log | ON |
| log_bin | ON |
| log_bin_trust_function_creators | OFF |
| log_error | /logs/mysql/mysqld.error.log |
| log_queries_not_using_indexes | OFF |
| log_slave_updates | OFF |
| log_slow_queries | ON |
| log_warnings | 1 |
| max_binlog_cache_size | 4294967295 |
| max_binlog_size | 1073741824 |
| max_relay_log_size | 0 |
| relay_log_purge | ON |
| relay_log_space_limit | 0 |
| sync_binlog | 0 |
+---------------------------------+------------------------------+
26 rows in set (0.00 sec)
查看什么是ON
和 ,如果不需要,请使用SET GLOBAL
将值更改为OFF
。请记住,您对 所做的任何操作SET GLOBAL
都不会在重启后保留,因此您可以测试使用SET GLOBAL
,然后通过将值写入适当的配置文件来使更改永久生效。
希望这能满足您的需要。