Не может включить журнал общего запроса MySQL

Я пытаюсь выяснить, как стать включения - выключения журнал общего запроса MySQL 5.1.48, не перезапуская сервер (не опция в производстве прямо сейчас). В моей тестовой среде это не работает.

Согласно этому, я должен смочь сказать:

set global general_log = 'OFF';

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

set global general_log = 'ON';

это жалуется что:

ERROR 1146 (42S02): Table 'mysql.general_log' doesn't exist

(верный, это не делает), и журнал добавляет стандартный заголовок запуска ("mysqld, Версия: 5.1.48..."), и затем ничто иное.

Я могу просто перейти к другой базе данных MySQL с той же платформой/версией, скопировать show create table mysql.general_log;, и выполненный это здесь? Это безопасно, или действительно ли это является симптоматическим для более глубоких проблем? И я, как предполагается, должен сделать это, когда я включаю журнал общего запроса? Я ничего не вижу об этом в руководстве.

2
задан 23.03.2011, 20:54

1 ответ

Глобальная general_log переменная становится входящей в систему и прочь (прочь по умолчанию) в настоящее время выбираемому месту назначения входа. Если ни один не указан, который регистрируется к mysql.general_log таблице:

Если - произведенный журналом опущен или дан без значения, значением по умолчанию является ФАЙЛ. (Для MySQL 5.1.6 до 5.1.20, местом назначения входа значения по умолчанию является ТАБЛИЦА.)

Для превращения, вхождение в систему для регистрации Вас должно будет перезапустить определение MySQL --log-output=FILE (или my.cnf эквивалент)

Для входа для представления в виде таблицы следующего стоит принять во внимание:

Для новых установок MySQL 5.1.6 или выше, таблицы журнала составлены во время процесса установки наряду с другими системными таблицами. При обновлении MySQL от выпуска, более старого, чем 5.1.6 к MySQL 5.1.6 или выше необходимо обновить системные таблицы после обновления, чтобы удостовериться, что таблицы журнала существуют. Посмотрите Раздел 4.4.8, “mysql_upgrade — Таблицы Проверки для MySQL Upgrade”.

Разделите 4.4.8 из руководства MySQL, говорит:

mysql_upgrade исследует все таблицы во всех базах данных для несовместимостей с текущей версией MySQL Server. mysql_upgrade также обновляет системные таблицы так, чтобы можно было использовать в своих интересах новые полномочия или возможности, которые, возможно, были добавлены.

Стоит прочитать ту часть руководства, чтобы гарантировать, что Ваши системные таблицы все корректны и в правильной версии.

О, и я не могу подчеркнуть это достаточно раз:

Создайте резервную копию своих баз данных прежде, чем сделать что-либо как это

6
ответ дан 08.12.2019, 05:07

Теги

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