Quali sono questi file, posso eliminarli manualmente?


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

Questi file ibdata1, mysql-bin.000008e mysql-bin.000009... stanno prendendo troppo del mio spazio, sarà ok per me per eliminare alcuni di loro manualmente?

AGGIORNAMENTO Non sto utilizzando il master / slave di MySQL, come eliminare e disabilitare tutti i file binari?


MOSTRARE I REGISTRI BINARI; potrebbe restituire un messaggio di errore del tipo "Errore 1381: non si utilizza la registrazione binaria".
uomo di bronzo,

Se viene visualizzato l'errore 1381: non si sta utilizzando un messaggio di registrazione binaria, cosa significa? È quindi sicuro eliminare manualmente i file?
Dan J.

Risposte:


9

Quelli sono registri bin mysql. Il server può essere seriamente irritato se li elimini con rm.

Invece, usa PURGE BINARY LOGS TO 'mysql-bin.010';l'utente root di mysql per permettergli di eliminare in sicurezza i file.

Maggiori informazioni sono disponibili qui nella documentazione.


Qual è la relazione tra questi registri binari?
apache,

Questi sono i file che si trovano nella directory database / var / lib / mysql.
Tom O'Connor,

5

Questi sono i file di registro per il servizio mysql. L'impostazione può essere personalizzata aggiornando il file /etc/my.cnf

Se stanno esaurendo lo spazio su disco, aggiungere l'impostazione per cancellare automaticamente i registri in base al numero di giorni che si desidera conservare

Ad esempio, l'impostazione di seguito eliminerà tutti i registri di oltre 90 giorni

**expire_logs_days=100**

per riflettere questa impostazione è necessario riavviare il servizio mysql

/etc/init.d/mysql restart

Spero che sia di aiuto


Questa è la soluzione più duratura. Anche il modo più semplice per eliminare se non ricordi bene le tue password MySQL :-)
kasimir

La migliore soluzione di sempre! Se si desidera eliminare tutti i file, impostare solo su 0 giorni, quindi tornare a un buon valore in base all'applicazione. Grazie amico!
Fábio N Lima,

4

I mysql-binfile sono i registri binari, che sono in genere sia per una cronologia delle transazioni sia a fini di replica. Per disabilitare la registrazione binaria, è possibile commentare le log-bin*righe nel cnf. log-slave-updatesdovrebbe essere commentato anche se abilitato.

ibdata*i file fanno parte del tablespace di InnoDB, che è specificato con l' innodb_data_file_pathimpostazione. Non consiglierei di cancellare a meno che tu non abbia tabelle InnoDB e prima disabiliti InnoDB usando skip-innodbnel cnf.


Devo commentare il server-idper disabilitarlo?
apache,

No, non puoi ma potresti. Viene utilizzato per identificare il server in modo univoco durante la replica.
Warner,

0

Per disabilitare completamente la registrazione è necessario commentare il valore del cestino nel file di configurazione (in genere /etc/my.cnf):

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

Penso che il file ibdata1 potrebbe contenere il database vero e proprio - non uso innodb quindi non ne sono sicuro - e quindi non consiglierei di rimuoverlo. Tuttavia, il comando "ELIMINA BINARI DA ..." elimina i registri binari.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.