O que são esses arquivos, posso excluí-los 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 | 
+------------------+-----------+

Esses arquivos ibdata1, mysql-bin.000008e mysql-bin.000009... está tomando muito do meu espaço, ele estará ok para mim para apagar alguns deles manualmente?

UPDATE Não estou utilizando o mestre / escravo do MySQL, como descartar e desativar todos os arquivos binários?

apache
fonte
MOSTRAR LOGIN BINÁRIO; pode retornar uma mensagem de erro como "Erro 1381: você não está usando o log binário".
bronze man
Se você receber o erro 1381: Você não está usando a mensagem de log binário, o que isso significa? É seguro excluir manualmente os arquivos?
Dan J.

Respostas:

9

Esses são logs bin do mysql. O servidor pode ficar seriamente irritado se você os excluir com rm.

Em vez disso, use PURGE BINARY LOGS TO 'mysql-bin.010';como o usuário root do mysql para deixá-lo excluir com segurança os arquivos.

Mais informações podem ser encontradas aqui na documentação.

Tom O'Connor
fonte
Qual a relação entre esses BINARY LOGS?
Apache
Estes são os arquivos que estão no diretório database / var / lib / mysql.
Tom O'Connor
5

Estes são os arquivos de log para o serviço mysql. A configuração pode ser personalizada, atualizando o arquivo /etc/my.cnf

Se eles estiverem consumindo espaço em disco, adicione a configuração para limpar automaticamente os logs com base no número de dias que você deseja manter

Por exemplo, a configuração abaixo excluirá todos os logs anteriores a 90 dias

**expire_logs_days=100**

para refletir essa configuração, precisamos reiniciar o serviço mysql

/etc/init.d/mysql restart

Espero que isto ajude

Sanjay Bharwani
fonte
Esta é a solução mais durável. Além disso, a maneira mais fácil de purga, se você não se lembrar de suas senhas do MySQL :-)
kasimir
Melhor solução de sempre! Se você deseja limpar todos os arquivos, defina apenas 0 dias e volte a um bom valor com base no seu aplicativo. Valeu cara!
Fábio N Lima
4

Os mysql-binarquivos são os logs binários, que normalmente são para o histórico de transações ou para fins de replicação. Para desativar o log binário, você pode comentar as log-bin*linhas no cnf. log-slave-updatestambém deve ser comentado se ativado.

ibdata*arquivos fazem parte do espaço de tabela do InnoDB, que é especificado com a innodb_data_file_pathconfiguração Eu não recomendaria a exclusão, a menos que você não tenha tabelas do InnoDB e primeiro desative o InnoDB usando skip-innodbno cnf.

Warner
fonte
Preciso comentar server-idpara desativá-lo?
Apache
Não, você não faz, mas você poderia. Isso é usado para identificar o servidor exclusivamente durante a replicação.
22410 Warner
0

Para desativar completamente o log, você precisa comentar o valor da lixeira no seu arquivo de configuração (normalmente /etc/my.cnf):

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

Eu acho que o arquivo ibdata1 pode conter o banco de dados real - eu não uso o innodb, por isso não tenho certeza - e, portanto, não recomendaria removê-lo. O comando "PURGE BINARY LOGS TO ..." se livrará dos logs binários.

malonso
fonte