¿Qué son estos archivos? ¿Puedo eliminarlos 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 | 
+------------------+-----------+

Estos archivos ibdata1, mysql-bin.000008y mysql-bin.000009... se ocupan demasiado de mi espacio, va a estar bien para mí para borrar algunos de ellos de forma manual?

ACTUALIZACIÓN No estoy utilizando el maestro / esclavo de MySQL, ¿cómo descartar y deshabilitar todos los archivos binarios?

apache
fuente
MOSTRAR REGISTROS BINARIOS; puede devolver un mensaje de error como "Error 1381: no está utilizando el registro binario".
hombre de bronce
Si recibe el error 1381: no está utilizando un mensaje de registro binario, ¿qué significa eso? ¿Es seguro eliminar manualmente los archivos?
Dan J.

Respuestas:

9

Esos son los registros de bin de mysql. El servidor puede irritarse gravemente si los elimina con rm.

En su lugar, úselo PURGE BINARY LOGS TO 'mysql-bin.010';como usuario root de mysql para permitir que elimine los archivos de forma segura.

Puede encontrar más información aquí en la documentación.

Tom O'Connor
fuente
¿Cuál es la relación entre estos REGISTROS BINARIOS?
apache
Estos son los archivos que están en su directorio de base de datos / var / lib / mysql.
Tom O'Connor
5

Estos son los archivos de registro para el servicio mysql. La configuración se puede personalizar actualizando el archivo /etc/my.cnf

Si están consumiendo su espacio en el disco, agregue la configuración para borrar automáticamente los registros en función del número de días que desea mantener

Por ejemplo, la configuración a continuación eliminará todos los registros anteriores a 90 días

**expire_logs_days=100**

para reflejar esta configuración, necesitamos reiniciar el servicio mysql

/etc/init.d/mysql restart

Espero que esto ayude

Sanjay Bharwani
fuente
Esta es la solución más duradera. También es la forma más fácil de purgar si no recuerda sus contraseñas de MySQL :-)
kasimir
¡La mejor solución de todas! Si desea purgar todos los archivos, simplemente configúrelos en 0 días y luego vuelva a un buen valor en función de su aplicación. ¡Gracias compañero!
Fábio N Lima
4

Los mysql-binarchivos son los registros binarios, que generalmente son tanto para un historial de transacciones como para replicación. Para deshabilitar el registro binario, puede comentar las log-bin*líneas en el cnf. log-slave-updatesdebe comentarse también si está habilitado.

ibdata*Los archivos son parte del espacio de tabla de InnoDB, que se especifica con la innodb_data_file_pathconfiguración. No recomendaría eliminar a menos que no tenga tablas de InnoDB y primero desactive InnoDB mediante el uso skip-innodben el cnf.

Warner
fuente
¿Necesito comentar el server-idpara deshabilitarlo?
apache
No, no lo haces pero podrías. Eso se utiliza para identificar el servidor de forma exclusiva durante la replicación.
Warner
0

Para deshabilitar el registro por completo, debe comentar el valor de bin de registro en su archivo de configuración (generalmente /etc/my.cnf):

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

Sin embargo, creo que el archivo ibdata1 podría contener la base de datos real, no uso innodb, así que no estoy seguro, por lo que no recomendaría eliminarlo. Sin embargo, el comando "PURGAR REGISTROS BINARIOS A ..." eliminará los registros binarios.

malonso
fuente