Saltar al contenido

Causa del error: nombre de tabla o base de datos no válido (¿antiguo?) ‘perdido+encontrado’

Contamos con tu apoyo para compartir nuestros ensayos sobre las ciencias de la computación.

Solución:

me parece tu datadir está en un sistema de archivos propio.

Los sistemas de archivos ext, como la mayoría de los FS bajo Unix, tienen en su raíz un directorio llamado lost+found. Existe para permitir que los archivos que se separan (es decir, tienen contenido, pero no tienen una entrada de directorio asociada) se vuelvan a unir en algún lugar cuando se fsckea un sistema de archivos inconsistente (consulte, por ejemplo, https://unix.stackexchange.com/ question/18154/cuál-es-el-propósito-de-la-carpeta-perdida-en-linux-y-unix para obtener más detalles). Este propósito es importante en la recuperación ante desastres, por lo que no debe eliminar el directorio.

Su problema surge cuando el punto de montaje, en el que se monta el sistema de archivos que contiene ese directorio, se entrega por completo a una aplicación que espera que todo en ese punto de montaje le pertenezca. MySQL es uno de ellos, intenta interpretar el lost+found directorio como algo relacionado con db, y (no sin razón) falla.

Su mejor apuesta es nunca dedicar un FS completo a una aplicación, sino montar el FS en algún punto de montaje no específico de la aplicación, por ejemplo /data1cree un subdirectorio debajo de eso, por ejemplo /data1/mysqly vuelva a configurar la aplicación para usar ese directorio como su directorio de datos.

MadHatter explicó bien el error. Pero desde entonces los tiempos han cambiado y ahora MySQL (desde 5.6.3) tiene una opción para ignorar este directorio. Simplemente agregue esta declaración en su /etc/mysql/my.cnf expediente:

ignore-db-dir=lost+found

Después de reiniciar MySQL, puede verificarlo con el comando:

show global variables like 'ignore_db_dirs';

Si desea ignorar varios directorios, debe especificar la opción para cada uno de ellos por separado.

Fuente: http://www.chriscalender.com/ignoring-the-lostfound-directory-in-your-datadir/

La ubicación de my.cnf en CentOS 7.2 si está utilizando MariaDB está en

/etc/my.cnf

Puede reiniciar el servicio con

systemctl restart mariadb.service

ignore-db-dir debe ponerse debajo [mysqld] sección y no debajo [mysqld_safe] una.

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

ignore-db-dir=lost+found

# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd

[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid
#
# include all files from the config directory
#
!includedir /etc/my.cnf.d

Sección de Reseñas y Valoraciones

Tienes la opción de reafirmar nuestra ocupación ejecutando un comentario o valorándolo te estamos agradecidos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *