Как я могу сделать настройки для MySQL, чтобы он регистрировал только такие важные вещи, как "Ошибка"

Сервер MariaDB-Mysql регистрирует все и некоторые журналы достигают 100gb+ и растут до тех пор, пока логротат не повернет их. Я хочу, чтобы MySQL регистрировал только необходимые вещи, такие как Error, а не Warn или Info (или что-то вроде этого, я не очень хорошо знаю Mysql стратегии протоколирования). Как я могу это сделать?

0
задан 14 January 2021 в 08:14

1 ответ

Если это основной сервер, который реплицирует данные на другие системы, то лог-файлы, конечно, могут очень быстро вырасти. Насколько я знаю, информационные сообщения не могут быть подавлены, но вы можете отключить такие предупреждающие сообщения как:

  1. Подключиться к базе данных в качестве root или пользователя с правами администратора
  2. Отключить ведение журнала предупреждений: SET GLOBAL log_warnings=0;
  3. SET GLOBAL log_warnings=0;
  4. Monitor your logs

Если это дает вам именно то, что вы хотите, то вам нужно обновить ваш 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, а затем сделать изменения постоянными, записав значение в соответствующий конфигурационный файл.

Надеюсь, это даст вам то, что вам нужно.

1
ответ дан 18 March 2021 в 23:44

Другие вопросы по тегам:

Похожие вопросы: