Что это за файлы, могу ли я удалить их вручную?

11
[root@jiaoyou mysql]# pwd
/var/lib/mysql
[root@jiaoyou mysql]# ls -ls
338256 -rw-rw---- 1 mysql mysql 346030080 2010-04-22 08:08 ibdata1
626812 -rw-rw---- 1 mysql mysql 641222072 2010-01-26 07:17 mysql-bin.000008
316892 -rw-rw---- 1 mysql mysql 324173772 2010-03-25 12:51 mysql-bin.000009
52724 -rw-rw---- 1 mysql mysql  53931666 2010-04-12 12:13 mysql-bin.000010
10136 -rw-rw---- 1 mysql mysql  10359639 2010-04-22 08:32 mysql-bin.000011

mysql> SHOW BINARY LOGS; 
+------------------+-----------+
| Log_name         | File_size |
+------------------+-----------+
| mysql-bin.000008 | 641222072 | 
| mysql-bin.000009 | 324173772 | 
| mysql-bin.000010 |  53931666 | 
| mysql-bin.000011 |  10360680 | 
+------------------+-----------+

Эти файлы ibdata1, mysql-bin.000008и mysql-bin.000009... занимают слишком много моего пространства, это будет хорошо для меня , чтобы удалить некоторые из них вручную?

ОБНОВЛЕНИЕ Я не использую ведущий / ведомый MySQL, как удалить и отключить все двоичные файлы?

апаш
источник
ПОКАЗАТЬ БИНАРНЫЕ ЖУРНАЛЫ; может возвращать сообщение об ошибке типа «Ошибка 1381: вы не используете двоичное ведение журнала».
бронзовый мужчина
Если вы получаете сообщение об ошибке 1381: вы не используете двоичное сообщение журнала, что это значит? Безопасно ли вручную удалять файлы?
Дэн Дж.

Ответы:

9

Это журналы mysql bin. Сервер может серьезно раздражаться, если вы удалите их с помощью команды rm.

Вместо этого используйте PURGE BINARY LOGS TO 'mysql-bin.010';в качестве пользователя root mysql, чтобы он мог безопасно удалять файлы.

Более подробную информацию можно найти здесь в документации.

Том О'Коннор
источник
Какая связь между этими двоичными журналами?
apache
Это файлы, которые находятся в вашей базе данных / var / lib / mysql.
Том О'Коннор
5

Это файлы журналов для службы MySQL. Настройка может быть изменена путем обновления файла /etc/my.cnf

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

Например, нижеприведенная настройка удалит все журналы старше 90 дней

**expire_logs_days=100**

чтобы отразить этот параметр нам нужно перезапустить службу MySQL

/etc/init.d/mysql restart

Надеюсь это поможет

Санджай Бхарвани
источник
Это самое долговечное решение. Также самый простой способ очистки, если вы не совсем помните свои пароли MySQL :-)
kasimir
Лучшее решение! Если вы хотите очистить все файлы, просто установите 0 дней, а затем вернитесь к правильному значению на основе вашего приложения. Спасибо, приятель!
Фабио Н Лима
4

Эти mysql-binфайлы являются бинарными журналами, которые , как правило , как для любой истории транзакций или для репликации. Чтобы отключить двоичное ведение журнала, вы можете закомментировать log-bin*строки в cnf. log-slave-updatesследует также прокомментировать, если включено.

ibdata*файлы являются частью табличного пространства InnoDB, которое указывается с помощью innodb_data_file_pathпараметра. Я бы не рекомендовал удалять, если у вас нет таблиц InnoDB и сначала отключите InnoDB, используя skip-innodbв cnf.

сигнализатор
источник
Нужно ли комментировать, server-idчтобы отключить его?
apache
Нет, не ты, но ты мог. Это используется для уникальной идентификации сервера во время репликации.
Уорнер
0

Чтобы полностью отключить ведение журнала, вам необходимо закомментировать значение bin-bin в вашем конфигурационном файле (обычно /etc/my.cnf):

#log-bin = /var/log/mysql/mysql-bin.log

Я думаю, что файл ibdata1 может содержать реальную базу данных - я не использую innodb, поэтому я не уверен - и поэтому я бы не рекомендовал удалять эту. Команда "PURGE BINARY LOGS TO ..." избавит от двоичных журналов.

malonso
источник