Що це за файли, чи можна їх видалити вручну?


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. Сервер може сильно роздратуватися, якщо видалити їх за допомогою 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 днів, а потім поверніться до хорошого значення на основі вашої програми. Дякую, приятелю!
Fábio N Lima

4

Ці mysql-binфайли є бінарними журналами, які , як правило , як для будь-якої історії транзакцій або для реплікації. Щоб вимкнути двійковий журнал, ви можете коментувати log-bin*рядки в cnf. log-slave-updatesслід також коментувати, якщо ввімкнено.

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


Чи потрібно мені коментувати, server-idщоб відключити його?
apache

Ні, ви цього не зробили. Це використовується для однозначної ідентифікації сервера під час реплікації.
Уорнер

0

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

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

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.