Я использую mysql для разработки. Я не использую репликацию, но полагаю, что на одном из моих предыдущих компьютеров в течение некоторого времени было включено ведение двоичного журнала, и я бессознательно накопил сотни двоичных файлов журнала.
Сейчас я использую Linux, и мне действительно нужно начать использовать двоичное ведение журнала. Когда я пытаюсь включить двоичный журнал в my.cnf - сервер mysql не запускается, и вот что я нахожу в журнале ошибок:
1 110314 14:39:40 [Note] Plugin 'FEDERATED' is disabled.
2 110314 14:39:40 InnoDB: Started; log sequence number 0 36669358
3 ^G/usr/sbin/mysqld: File '.\mysql-bin.000179' not found (Errcode: 2)
4 110314 14:39:40 [ERROR] Failed to open log (file '.\mysql-bin.000179', errno 2)
5 110314 14:39:40 [ERROR] Could not open log file
6 110314 14:39:40 [ERROR] Can't init tc log
7 110314 14:39:40 [ERROR] Aborting
8
9 110314 14:39:40 InnoDB: Starting shutdown.
так что - я полагаю - мне просто нужно удалить старые двоичные журналы - верно? Могу я просто удалить все mysql-bin. файлы? Придется ли мне также очистить файл mysql-bin.index?
Спасибо!
Изменить: Ого, я совершенно неправильно понял вопрос. Да, убедитесь, что bin_log закомментирован. Начать сначала. удалите все журналы корзины и индекс журнала корзины. Затем добавьте bin_log обратно в my.cnf и перезапустите. Я оставлю свой исходный ответ, потому что он содержит некоторые приличные вещи, особенно под №1.
Оригинал: у вас есть несколько вариантов. Однако никогда не рекомендуется удалять журналы bin через файловую систему, если база данных не была настроена так, чтобы больше не создавать их.
Храните журналы корзины, но время от времени удаляйте их. Добавьте expire_logs_days = 3 в my.cnf, и все серверы Mysql должны иметь эту конфигурацию, если они генерируют журналы bin. Использую на своих серверах 10 дней. Вы можете добавить max_binlog_size = 100M или какой-либо другой размер меньше, чем значение по умолчанию 1G на сервере разработки. Mysql удаляет bin_logs только по достижении максимального количества дней и максимальный размер.
полностью удалить журналы корзины. Закомментируйте log_bin в своем my.cnf. Перезапустите Mysql, потому что log_bin не является динамическим. Теперь вы можете войти и удалить журналы bin через файловую систему.
Очистите bin_logs до определенного момента. Сделайте следующее из командной строки mysql. Вы можете изменить день на то, что вам подходит.
mysql> ОЧИСТИТЬ БИНАРНЫЕ ЖУРНАЛЫ ПЕРЕД DATE_SUB (NOW (), ИНТЕРВАЛ 7 ДНЕЙ);
В большинстве случаев я бы рекомендовал №1, потому что иногда полезно иметь журналы корзины на пару дней.