Co to za pliki, czy mogę je usunąć ręcznie?

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 | 
+------------------+-----------+

Te pliki ibdata1, mysql-bin.000008a mysql-bin.000009... zajmują zbyt dużo mojego miejsca, to będzie dla mnie OK, aby usunąć niektóre z nich ręcznie?

AKTUALIZACJA Nie używam master / slave MySQL, jak upuścić i wyłączyć wszystkie pliki binarne?

apacz
źródło
POKAŻ DZIENNIKI BINARNE; może zwrócić komunikat o błędzie, taki jak „Błąd 1381: Nie używasz rejestrowania binarnego”.
brąz mężczyzna
Jeśli pojawi się błąd 1381: Co nie oznacza, że ​​używasz binarnego komunikatu rejestracyjnego? Czy to jest bezpieczne, aby ręcznie usunąć pliki?
Dan J.

Odpowiedzi:

9

Są to dzienniki bin mysql. Serwer może zostać poważnie zirytowany, jeśli usuniesz je za pomocą rm.

Zamiast tego użyj PURGE BINARY LOGS TO 'mysql-bin.010';jako główny użytkownik mysql, aby umożliwić mu bezpieczne usuwanie plików.

Więcej informacji można znaleźć tutaj w dokumentacji.

Tom O'Connor
źródło
Jaki jest związek między tymi DZIENNIKAMI BINARNYMI?
apache
Są to pliki znajdujące się w katalogu bazy danych / var / lib / mysql.
Tom O'Connor,
5

Są to pliki dzienników usługi mysql. Ustawienie można dostosować, aktualizując plik /etc/my.cnf

Jeśli zajmują miejsce na dysku, dodaj ustawienie automatycznego czyszczenia dzienników na podstawie liczby dni, które chcesz zachować

Na przykład poniższe ustawienie spowoduje usunięcie wszystkich dzienników starszych niż 90 dni

**expire_logs_days=100**

aby odzwierciedlić to ustawienie, musimy ponownie uruchomić usługę mysql

/etc/init.d/mysql restart

Mam nadzieję że to pomoże

Sanjay Bharwani
źródło
To jest najbardziej trwałe rozwiązanie. Również najłatwiejszy sposób na wyczyszczenie, jeśli nie pamiętasz swoich haseł MySQL :-)
kasimir
Najlepsze rozwiązanie w historii! Jeśli chcesz wyczyścić wszystkie pliki, po prostu ustaw 0 dni, a następnie przywróć dobrą wartość na podstawie aplikacji. Dzięki kolego!
Fábio N Lima,
4

Te mysql-binpliki binarne kłody, które są zwykle zarówno dla obu historii transakcji lub dla celów replikacji. Aby wyłączyć rejestrowanie binarne, możesz komentować log-bin*linie w cnf. log-slave-updatesnależy również komentować, jeśli jest włączony.

ibdata*pliki są częścią obszaru tabel InnoDB, który określa innodb_data_file_pathustawienie. Nie polecałbym usuwania, chyba że nie masz tabel InnoDB i najpierw nie skip-innodbwyłączasz InnoDB za pomocą cnf.

Warner
źródło
Czy muszę to komentować, server-idaby je wyłączyć?
apache
Nie, ale nie możesz. Służy do jednoznacznej identyfikacji serwera podczas replikacji.
Warner
0

Aby całkowicie wyłączyć rejestrowanie, musisz zakomentować wartość bin-log w pliku konfiguracyjnym (zazwyczaj /etc/my.cnf):

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

Wydaje mi się, że plik ibdata1 może zawierać rzeczywistą bazę danych - nie używam innodb, więc nie jestem pewien - i dlatego nie polecam usuwania tego. Polecenie „PURGE BINARY LOGS TO ...” pozbywa się jednak dzienników binarnych.

malonso
źródło