¿Es posible restaurar una base de datos MySQL desde los archivos físicos de la base de datos? Tengo un directorio que tiene los siguientes tipos de archivos:
client.frm
client.MYD
client.MYI
pero por unas 20 mesas más.
Por lo general, uso mysqldump o una herramienta similar para obtener todo en 1 archivo SQL, entonces, ¿cuál es la forma de manejar este tipo de archivos?
Respuestas:
Una tabla MySQL MyISAM es la combinación de tres archivos:
Debería poder restaurarlos copiándolos en la carpeta de su base de datos (en Linux, la ubicación predeterminada es
/var/lib/mysql/
)Debe hacerlo mientras el servidor no se está ejecutando.
fuente
mysql
usuario que ejecutaba elmysqld
proceso no podía acceder a ellos. Hacer unchmod -R mysql:mysql .
en el directorio de datos mysql es rápido y fácil, pero antes de eso, descubrir por qué todas mis bases de datos resoterd parecía no tener tablas tomó un poco más de tiempo.chown
copiar los archivos así:sudo chown -R mysql:mysql /var/lib/mysql
De la respuesta de @Vicent, ya restauro la base de datos MySQL de la siguiente manera:
Paso 1. Apagar el servidor Mysql
Paso 2. Copie la base de datos en su carpeta de base de datos (en Linux, la ubicación predeterminada es / var / lib / mysql). Mantenga el mismo nombre de la base de datos y el mismo nombre de la base de datos en modo mysql.
Paso 3: Cambia el modo propio y cambia la carpeta:
Paso 4: copie ibdata1 en la carpeta de su base de datos
Paso 5: copie los archivos ib_logfile0 e ib_logfile1 en la carpeta de su base de datos.
Recuerde cambiar propio y cambiar la raíz de esos archivos:
o
Paso 6 (Opcional): mi sitio tiene configuración para almacenar archivos en una ubicación específica, luego los copio a la ubicación correspondiente, exactamente.
Paso 7: Inicie su servidor Mysql. Todo vuelve y disfrútalo.
Eso es.
Ver más información en: https://biolinh.wordpress.com/2017/04/01/restoring-mysql-database-from-physical-files-debianubuntu/
fuente
Si está restaurando la carpeta, no olvide poner los archivos en mysql: mysql; de lo
chown -R mysql:mysql /var/lib/mysql-data
contrario, obtendrá errores al intentar soltar una base de datos o agregar una nueva columna, etc.
y reiniciar MySQL
fuente
Tengo el mismo problema pero no pude recuperar con éxito la base de datos, según las instrucciones anteriores.
Solo pude recuperar carpetas de la base de datos mysql de mi sistema operativo Ubuntu. Mi problema es cómo recuperar mi base de datos con esas carpetas de datos mysql ilegibles. Así que volví al sistema operativo win7 para el entorno de desarrollo.
* NOTA: Tengo un servidor de base de datos existente ejecutándose en win7 y solo necesito pocos archivos de base de datos para recuperar los archivos recuperados. Para recuperar con éxito los archivos de la base de datos del sistema operativo Ubuntu, necesito instalar recientemente el servidor de base de datos mysql (la misma versión del sistema operativo Ubuntu en mi sistema operativo win7) para recuperar todo en ese antiguo servidor de base de datos.
Cree otra nueva versión del servidor de base de datos mysql con los archivos recuperados.
Detenga el servidor mysql
copie la carpeta recuperada y péguela en la base de datos mysql (C: \ ProgramData \ MySQL \ MySQL Server 5.5 \ data).
copie el archivo ibdata1 ubicado en la carpeta instalada de Linux mysql y péguelo en (C: \ ProgramData \ MySQL \ MySQL Server 5.5 \ data). Simplemente sobrescriba el existente o haga una copia de seguridad antes de reemplazarlo.
inicie el servidor mysql y verifique si ha recuperado con éxito los archivos de la base de datos.
Para usar la base de datos recuperada en mi servidor mysql actualmente utilizado, simplemente exporte la base de datos recuperada e impórtela en mi servidor mysql existente.
Espero que esto ayude, porque nada más funcionó para mí.
fuente
Con MySql 5.1 (Win7). Para recrear DBs (InnoDbs), he reemplazado todo el contenido de los siguientes directorios (my.ini params):
Después de eso comencé el servicio MySql y todo funciona bien.
fuente
¡Sí lo es! Simplemente agréguelos a su carpeta de base de datos (según el sistema operativo) y ejecute un comando como "Permisos de reparación de MySQL". Esto volvió a almacenar la base de datos. Observe también que también se establecen los permisos correctos en los archivos.
fuente
Una vez copié estos archivos en la carpeta de almacenamiento de la base de datos para una base de datos mysql que funcionaba, inicié el db y esperé a que "reparara" los archivos, luego los extraje con mysqldump.
fuente
En mi caso, simplemente eliminar el tc.log en / var / lib / mysql fue suficiente para iniciar mariadb / mysql nuevamente.
fuente