1030 Recibió el error 28 del motor de almacenamiento

205

Estoy trabajando en un proyecto donde necesito crear una base de datos con 300 tablas para cada usuario que quiera ver la aplicación de demostración. funcionaba bien, pero hoy, cuando estaba probando con un nuevo usuario para ver una demostración, me mostró este mensaje de error

1030 Got error 28 from storage engine

Después de pasar un tiempo buscando en Google, descubrí que es un error relacionado con el espacio de la base de datos o los archivos temporales. Traté de arreglarlo pero fallé. ahora ni siquiera puedo iniciar mysql. ¿Cómo puedo solucionar esto y también me gustaría aumentar el tamaño al máximo para no enfrentar el mismo problema una y otra vez?

Escorpión
fuente
1
Enunciando lo obvio ... ¿tiene suficiente espacio libre en la partición donde se almacenan los datos de mysql? ¿En qué plataforma estás corriendo? Localhost o una empresa de hosting?
DCoder
@DCoder: - Tengo un servidor en la nube de Amazon
ScoRpion
1
@ShowketBhat Tengo el mismo problema, mi /tmpcarpeta tiene 100% de uso de espacio. ¿Está bien simplemente eliminar todos los archivos de esta carpeta / tmp? Y otra pregunta, ¿por qué no se elimina automáticamente?
Dima Deplov

Respuestas:

412

El error Mysql " 28 del motor de almacenamiento " significa " no hay suficiente espacio en disco ".

Para mostrar el espacio en disco, use el comando a continuación.

myServer# df -h

Los resultados deben ser así.

Filesystem    Size    Used   Avail Capacity  Mounted on
/dev/vdisk     13G     13G     46M   100%    /
devfs         1.0k    1.0k      0B   100%    /dev
Oleksandr Diudiun
fuente
66
Para obtener información adicional, obtendrá el mismo error si el sistema de archivos / tmp alcanza el 100% del uso.
Kumar
1
Incluso si tiene su Mys_l data_dir en una partición (o disco) diferente que tiene espacio libre, debe tener espacio libre en / y / tmp (por supuesto, podría tener los últimos en una partición / disco diferente)
Diego Andrés Díaz Espinoza
1
Me salvaste el día, encontré un archivo de registro lento de 390 Gb ((
mulya
1
Buena respuesta. Me ahorró mucho tiempo. +1
Pratik Soni
34

Para ampliar esto (aunque es una pregunta anterior); Probablemente no se trata del espacio MySQL en sí mismo, sino del espacio en general, suponiendo archivos tmp o algo así. Mi directorio de datos mysql no estaba lleno, la partición / (raíz) era

Maarten
fuente
10

Tuve el mismo problema en AWS RDS. Fue debido a que el espacio libre (espacio de almacenamiento en disco duro) estaba lleno. Necesita aumentar su espacio o eliminar algunos datos.

Gregory Burns
fuente
8

Mi / tmp fue% 100. Después de eliminar todos los archivos y reiniciar mysql, todo funcionó bien.

Sami Onur Zaim
fuente
2

Mi carpeta / var / log / apache2 era de 35 gy algunos registros en / var / log totalizaron los otros 5 g de mi disco duro de 40 g. Borré todos los registros * .gz y después de asegurarme de que los otros registros no iban a hacer cosas malas si me metía con ellos, simplemente los borré también.

echo "clear" > access.log

etc.

PyromonkeyGG
fuente
3
Esa es una forma muy extraña de borrar un archivo de registro, ¿no? ¿Por qué no simplemente rm?
user1175849
3
¿Quizás entonces puedas conservar el archivo y los permisos?
Zachary Dahan
9
Recomiendo usar truncatepara borrar registros,truncate -s 0 access.log
2

Verifique su / copia de seguridad para ver si puede eliminar una copia de seguridad anterior no necesaria.

Jacob
fuente
1

Tuve un problema similar debido a mi replicación registros binarios de .

Si este es el caso, simplemente cree un cronjob para ejecutar esta consulta todos los días:

PURGE BINARY LOGS BEFORE DATE_SUB( NOW(), INTERVAL 2 DAY );

Esto eliminará todos los registros binarios anteriores a 2 días.

Encontré esta solución aquí .

GabrielOliv
fuente
0

Un simple: $ sth-> finish (); Probablemente te salvaría de preocuparte por esto. Mysql usa el espacio tmp del sistema en lugar de su propio espacio.

Craig
fuente
0
sudo su


cd /var/log/mysql

y finalmente escribe: > mysql-slow.log

Esto funciono para mi

Kaushik Thanki
fuente
0

Descarte la base de datos problemática, luego reinicie el servicio mysql ( sudo service mysql restartpor ejemplo).

Sergio Belevskij
fuente