Como limpar os binary logs em MySQL

Porque tenho tantos arquivos de binary-log no meu banco de dados MySQL ? Eles estão tomando uma quantidade grande de espaço e eu preciso me livrar deles!   Não tão rápido ! Primeiro você precisa saber quais são os logs binários e para o que eles são usados: O que são eles?    O log binário contém "eventos" que descrevem as alterações de banco de dados, tais como operações de criação de tabelas ou alterações aos dados da tabela. O que eles servem para? Replicação - o log binário em um servidor de replicação Master fornece um registro das alterações de dados a serem enviados para servidores escravos. O servidor mestre envia os eventos contidos em seu log binário para seus Slave, que executam esses eventos para fazer as mesmas alterações de dados que foram feitas no Master. Operações de recuperação -Exige o uso dos logs binários. Após que um backup foi restaurado, os eventos no log binário que foram registrados após o backup foi feito são re-executado. Estes eventos trazem bancos de dados atualizados a partir do ponto do backup.     A execução de um servidor com o log binário habilitado torna o desempenho um pouco mais lento. No entanto, os benefícios do log binário em que lhe permite configurar a replicação e para operações de restauração em geral superam este decréscimo desempenho menor.   Por isso, se você está no banco de dados MySQL produção logs binários são muito importantes. Não é colocar para falar sobre os logs binários, mas agora vamos ver como podemos logs antigos com segurança limpar. Vamos começar listando nossos logs binários:

mysql> SHOW BINARY LOGS;
+---------------+-----------+
| Log_name      | File_size |
+---------------+-----------+
| bih001.000075 | 105819784 |
| bih001.000076 | 104881533 |
| bih001.000077 | 105052269 |
| bih001.000078 | 104876835 |
| bih001.000079 | 105226559 |
| bih001.000080 | 104857777 |
| bih001.000081 | 104857924 |
| bih001.000082 | 105398762 |
| bih001.000083 | 104990674 |
| bih001.000084 | 105127042 |
| bih001.000085 | 105057967 |
| bih001.000086 | 109000834 |
+---------------+-----------+
26 rows in set (0.04 sec)
Você pode optar por limpeza até um log binário apenas passando o nome dele: Isto irá apagar todos os logs binários criados antes de bih001.000075 , não vai limpar o log binário que você passou.
mysql> PURGE BINARY LOGS TO 'bih001.000075';
Query OK, 0 rows affected (0.00 sec)
Ou você pode usar um intervalo de tempo: Isto vai limpar todos os log criados ate a data "2015-01-30 22:46:26".
mysql> PURGE BINARY LOGS BEFORE '2015-01-30 22:46:26';
Query OK, 0 rows affected (0.88 sec)
Outra forma é a configuração de uma política de limpeza destes logs. Isto é possível através da criação da variável expire-logs-days . Esta variável vai representar o valor de dias apos que o log expira automaticamente. Examplo:
mysql> SET GLOBAL expire_logs_days = 5;

--Certifique-se também que adicionou ao seu arquivo conf (my.cnf) para que na próxima vez que a instância reinicia ela não vai perder o parâmetro configurado.
[mysqld]
expire-logs-days=5
- É importante saber que, se você tem replicação habilitado, você precisa considerar o tempo de atraso que você tem entre o Master> Slave. - Também se certificar de que você tem seus backups atualizados antes de começar a limpeza de logs binários.