如何配置 MySQL 仅记录“错误”等重要信息

如何配置 MySQL 仅记录“错误”等重要信息

MariaDB-Mysql 服务器正在记录所有内容,有时日志会达到 100gb 以上,并且会一直增长,直到 logrotate 轮换它们。我希望 MySQL 只记录必要的内容,例如错误,而不是警告或信息(或类似的东西,我不太了解 Mysql 日志记录策略)。我该怎么做?

答案1

如果这是将数据复制到其他系统的主服务器,则日志肯定会很快变得很大。据我所知,信息消息无法被抑制,但您可以关闭警告消息,如下所示:

  1. root以管理员身份或具有管理员权限的用户身份连接到数据库
  2. 禁用警告日志记录:SET GLOBAL log_warnings=0;
  3. 监控日志

如果这正是您想要的,那么您将需要更新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,然后通过将值写入适当的配置文件来使更改永久生效。

希望这能满足您的需要。

相关内容