Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment récupérer une base de données MySQL à partir de fichiers .myd, .myi, .frm

S'il s'agit de tables MyISAM, placez les fichiers .FRM, .MYD et .MYI dans un répertoire de base de données (par exemple, /var/lib/mysql/dbname ) rendra cette table disponible. Il ne doit pas nécessairement s'agir de la même base de données d'où ils proviennent, du même serveur, de la même version de MySQL ou de la même architecture. Vous devrez peut-être également modifier le propriétaire du dossier (par exemple, chown -R mysql:mysql /var/lib/mysql/dbname )

Notez que les autorisations (GRANT , etc.) font partie de mysql base de données. Ils ne seront donc pas restaurés avec les tableaux; vous devrez peut-être exécuter le GRANT approprié déclarations pour créer des utilisateurs, donner accès, etc. (Restauration du mysql base de données est possible, mais vous devez être prudent avec les versions de MySQL et toutes les exécutions nécessaires de mysql_upgrade utilitaire.)

En fait, vous n'avez probablement besoin que du .FRM (structure de la table) et du .MYD (données de la table), mais vous devrez réparer la table pour reconstruire le .MYI (index).

La seule contrainte est que si vous rétrogradez, vous feriez mieux de vérifier les notes de version (et probablement d'exécuter le tableau de réparation). Les nouvelles versions de MySQL ajoutent des fonctionnalités, bien sûr.

[Bien que cela devrait être évident, si vous mélangez et faites correspondre des tables, l'intégrité des relations entre ces tables est votre problème; MySQL s'en moque, mais votre application et vos utilisateurs peuvent l'être. De plus, cette méthode ne fonctionne pas du tout pour les tables InnoDB. Seulement MyISAM, mais compte tenu des fichiers que vous avez, vous avez MyISAM]