sql >> Base de Datos >  >> RDS >> Mysql

Cómo recuperar una base de datos MySQL desde archivos .myd, .myi, .frm

Si se trata de tablas MyISAM, coloque los archivos .FRM, .MYD y .MYI en un directorio de base de datos (por ejemplo, /var/lib/mysql/dbname ) hará que esa tabla esté disponible. No tiene que ser la misma base de datos de la que provienen, el mismo servidor, la misma versión de MySQL o la misma arquitectura. Es posible que también deba cambiar la propiedad de la carpeta (por ejemplo, chown -R mysql:mysql /var/lib/mysql/dbname )

Tenga en cuenta que los permisos (GRANT , etc.) son parte de mysql base de datos. Así que no serán restaurados junto con las mesas; es posible que deba ejecutar el GRANT apropiado declaraciones para crear usuarios, dar acceso, etc. (Restaurando el mysql la base de datos es posible, pero debe tener cuidado con las versiones de MySQL y cualquier ejecución necesaria de mysql_upgrade utilidad.)

En realidad, probablemente solo necesite .FRM (estructura de tabla) y .MYD (datos de tabla), pero tendrá que reparar la tabla para reconstruir .MYI (índices).

La única restricción es que si está degradando, será mejor que consulte las notas de la versión (y probablemente ejecute la tabla de reparación). Por supuesto, las versiones más recientes de MySQL añaden funciones.

[Aunque debería ser obvio, si mezcla y combina tablas, la integridad de las relaciones entre esas tablas es su problema; A MySQL no le importará, pero a su aplicación y a sus usuarios sí. Además, este método no funciona en absoluto para las tablas de InnoDB. Solo MyISAM, pero teniendo en cuenta los archivos que tiene, tiene MyISAM]