Directorio de artículos
Descripción del problema
Causado por: java.sql.SQLException: la tabla 'XXX' está llena (mysql la tabla está llena)
solución
Posibles factores que causan el error:
1. El disco está lleno
2. Hay demasiados datos en la tabla.
Pasos para la solución de problemas:
1. Demasiados datos de tabla
1.1 Tabla de consultas
Si los datos en una sola tabla son demasiado grandes, causará anomalías
. Los datos pueden estar llenos en aproximadamente siete u ocho dígitos. Por ejemplo, algunos registros AOP, registros de registro, etc. tienen demasiados datos. .
En este caso, debe borrar los datos de la tabla. .
use information_schema;
select concat(round(sum(data_length/1024/1024),2),'MB') as data from tables where table_schema='数据库名称' and table_name='表名称';
2. El disco está lleno
2.1 Verificar el uso del disco
Utilice el siguiente comando
df -h
2.2 Comprueba qué archivo ocupa más espacio
Utilice el siguiente comando
du -sh *
2.3 Posibles factores binlog
De hecho, en la mayoría de los casos se debe al binlog, que borra los registros binlog antes de mysql-bin.0004**.
Si las operaciones de datos son frecuentes, se generará una gran cantidad de registros. Se generarán archivos similares a mysql-bin.0000* en /usr/local/mysql/var/, que generalmente van desde decenas de MB hasta varios GB, y pueden Incluso ocupa todo el espacio del disco duro, lo que hace que MySQL no se inicie o informe un error. .
rm -rf mysql-bin.00040*;
La eliminación directa del registro binlog en el servidor (eliminación física) provocará que MySQL no se inicie.
Esto se debe a que el archivo binlog se carga leyendo el archivo binlog.index. Debe ingresar el archivo y eliminar o comentar el registro binlog correspondiente.
vim mysql-bin.log.index
Si no necesita binlog, puede desactivarlo
Encuentre el archivo my.cnf globalmente
find /* -name my.cnf
Modifique el archivo my.cnf y use # para comentar las dos líneas siguientes:
#log-bin=mysql-bin
#binlog_format=mixed
Entonces simplemente reinicia
/etc/init.d/mysql restart