mysql 5.5 general_log не останется выключенным

Недавно я обнаружил, что мой general_log включен, и он сгенерировал файл журнала 400 ГБ. Ой.. Тогда я попытался выключить его.

во время работы я ввел "SET GLOBAL general_log = OFF" и, конечно же, выключил его. До следующего перезапуска MySQL, и он снова включился!

Я посмотрел на my.cnf, и там не было ничего о general_log, которое могло бы его включить, поэтому для большей безопасности я добавил general_log=0 под заголовком [mysqld]. Я перезапустил mysql снова и, конечно же, general_log снова включен!!!

Затем я отредактировал /etc/sysconfig/mysqld и добавил --general_log=0 в командную строку и перезапустил mysql...


>  /etc/init.d/mysqld restart
/etc/sysconfig/mysqld: line 10: --general_log=0: command not found
Stopping mysqld:                                           [  OK  ]
Starting mysqld:                                           [  OK  ]

Хорошо, так что он жаловался на это, но, УСПЕХ, общий журнал, наконец, отключен! Но это просто неправильно. Нам не нравятся сообщения об ошибках, даже если он видит этот параметр командной строки и использует его просто отлично.

Итак, три вопроса..

  1. почему исправление my.cnf не работает?
  2. почему бы отключить его изнутри MySQL не держать его
  3. почему он требует параметр командной строки, на который он жалуется, но все же принимает.

Я использую версию сервера: 5.5.30-cll на CentOS 5.9

Буду признателен за любую помощь, которую вы можете дать.. Google просто не находит ответы на этот вопрос.

2 ответа

По этому поводу есть сообщение об ошибке, и утверждается, что исправление появилось. Однако бывают случаи, когда исправления применяются к будущим второстепенным выпускам. В отчете об ошибке утверждается, что это было исправлено в MySQL 5.5.9, но вы видите эту проблему в MySQL 5.5.30.

Однажды я ответил на вопрос в DBA StackExchange, где исправление ошибки репликации пропустило выпуск. Я также ответил на другой вопрос, где отсутствует функция SLEEP при запуске init-скрипта. Я подозреваю, что пропущенный патч там тоже.

РЕШЕНИЕ

Вместо этого

[mysqld]
general-log=0

попробуйте это закомментировать

[mysqld]
#general-log=0

и перезапуск MySQL

По этому вопросу:

> I recently discovered that my general_log was turned on and it had generated a 400gb log file
> So, three questions..
>
> why would the my.cnf fix not work?
> why would turning it off from within mysql not keep it off
> why would it require the command line option that it complains about but yet accepts.

Я "обнаружил" эту проблему после обновления MySQL 5.1 до версии 5.6 и "мучился" с этой проблемой в течение нескольких недель, ожидая разумной причины для этого "странного" поведения (даже если поступает так, как описано ниже!) От кого-то из MySQL Команда поддержки и другие форумы, к сожалению, без ответов.

С уважением, делаем "SET GLOBAL general_log = 'OFF';" и "SET GLOBAL slow_query_log = 'OFF';" не решил это, ПОСТОЯННО!

Затем я попытался поставить последнюю точку в этом выпуске, изменив некоторые параметры в файле MY.INI, который находился в той же папке, куда я помещал базы данных MySQL, например:

# General and Slow logging.
log-output=FILE
general-log=0                            <--- HERE !
general_log_file="NATCOMP7.log"
slow-query-log=0                         <--- And HERE !
slow_query_log_file="NATCOMP7-slow.log"
long_query_time=10

Что ж, это решило эту "проблему" в одной среде Windows.

НТН

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