Ist es möglich, eine MySQL-Datenbank aus den physischen Datenbankdateien wiederherzustellen? Ich habe ein Verzeichnis mit den folgenden Dateitypen:
client.frm
client.MYD
client.MYI
aber für etwa 20 weitere Tische.
Normalerweise verwende ich mysqldump oder ein ähnliches Tool, um alles in einer SQL-Datei abzurufen. Wie gehe ich also mit diesen Dateitypen um?
Antworten:
Eine MySQL MyISAM-Tabelle ist die Kombination von drei Dateien:
Sie sollten in der Lage sein, wiederherzustellen, indem Sie sie in Ihren Datenbankordner kopieren (unter Linux ist der Standardspeicherort
/var/lib/mysql/
)Sie sollten dies tun, während der Server nicht ausgeführt wird.
quelle
mysql
Benutzer, der denmysqld
Prozess ausführte, nicht darauf zugreifen. Das Erstellen eineschmod -R mysql:mysql .
MySQL-Datenverzeichnisses ist schnell und einfach, aber vorher herauszufinden, warum alle meine resoterd DBs keine Tabellen zu haben schienen, dauerte etwas länger.chown
Dateien kopieren:sudo chown -R mysql:mysql /var/lib/mysql
Nach der Antwort von @Vicent stelle ich die MySQL-Datenbank bereits wie folgt wieder her:
Schritt 1. Fahren Sie den MySQL-Server herunter
Schritt 2. Kopieren Sie die Datenbank in Ihren Datenbankordner (unter Linux ist der Standardspeicherort / var / lib / mysql). Behalten Sie den gleichen Namen der Datenbank und den gleichen Namen der Datenbank im MySQL-Modus.
Schritt 3: Ändern Sie Ihren eigenen und ändern Sie den Modus des Ordners:
Schritt 4: Kopieren Sie ibdata1 in Ihren Datenbankordner
Schritt 5: Kopieren Sie die Dateien ib_logfile0 und ib_logfile1 in Ihren Datenbankordner.
Denken Sie daran, die eigenen zu ändern und das Stammverzeichnis dieser Dateien zu ändern:
oder
Schritt 6 (Optional): Meine Site ist so konfiguriert, dass Dateien an einem bestimmten Speicherort gespeichert werden. Anschließend kopiere ich diese genau an den entsprechenden Speicherort.
Schritt 7: Starten Sie Ihren MySQL-Server. Alles kommt zurück und genießt es.
Das ist es.
Weitere Informationen finden Sie unter: https://biolinh.wordpress.com/2017/04/01/restoring-mysql-database-from-physical-files-debianubuntu/
quelle
Wenn Sie den Ordner wiederherstellen, vergessen Sie nicht, die Dateien in mysql: mysql zu zerlegen.
chown -R mysql:mysql /var/lib/mysql-data
Andernfalls werden Fehler angezeigt , wenn Sie versuchen, eine Datenbank zu löschen oder eine neue Spalte hinzuzufügen.
und starten Sie MySQL neu
quelle
Ich habe das gleiche Problem, konnte die Datenbank jedoch aufgrund der obigen Anweisungen nicht erfolgreich wiederherstellen.
Ich konnte nur MySQL-Datenbankordner von meinem Ubuntu-Betriebssystem wiederherstellen. Mein Problem ist, wie ich meine Datenbank mit diesen unlesbaren MySQL-Datenordnern wiederherstellen kann. Also wechselte ich zurück zu Win7 OS für die Entwicklungsumgebung.
* HINWEIS Ich habe einen vorhandenen Datenbankserver in Win7 und benötige nur wenige Datenbankdateien, um sie aus den wiederhergestellten Dateien abzurufen. Um die Datenbankdateien erfolgreich von Ubuntu OS wiederherzustellen, muss ich den MySQL-Datenbankserver (dieselbe Version von Ubuntu OS in meinem Win7-Betriebssystem) neu installieren, um alles auf diesem alten Datenbankserver wiederherzustellen.
Erstellen Sie aus den wiederhergestellten Dateien einen anderen neuen MySQL-Datenbankserver mit derselben Version.
Stoppen Sie den MySQL-Server
Kopieren Sie den wiederhergestellten Ordner und fügen Sie ihn in die MySQL-Datenbank (C: \ ProgramData \ MySQL \ MySQL Server 5.5 \ data) ein.
Kopieren Sie die Datei ibdata1 im installierten Linux-Ordner mysql und fügen Sie sie ein (C: \ ProgramData \ MySQL \ MySQL Server 5.5 \ data). Überschreiben Sie einfach das vorhandene oder erstellen Sie ein Backup, bevor Sie es ersetzen.
Starten Sie den MySQL-Server und überprüfen Sie, ob Sie die Datenbankdateien erfolgreich wiederhergestellt haben.
Um die wiederhergestellte Datenbank auf meinem aktuell verwendeten MySQL-Server zu verwenden, exportieren Sie einfach die wiederhergestellte Datenbank und importieren Sie sie auf meinen vorhandenen MySQL-Server.
Hoffe das wird helfen, denn nichts anderes hat bei mir funktioniert.
quelle
Mit MySql 5.1 (Win7). Um DBs (InnoDbs) neu zu erstellen, habe ich den gesamten Inhalt der folgenden Verzeichnisse (my.ini-Parameter) ersetzt:
Danach habe ich MySql Service gestartet und alles funktioniert gut.
quelle
Ja, so ist es! Fügen Sie sie einfach Ihrem Datenbankordner hinzu (abhängig vom Betriebssystem) und führen Sie einen Befehl wie "MySQL Fix Permissions" aus. Dadurch wurde die Datenbank neu gespeichert. Beachten Sie auch, dass die richtigen Berechtigungen auch für die Dateien festgelegt sind.
quelle
Ich habe diese Dateien einmal in den Datenbankspeicherordner für eine funktionierende MySQL-Datenbank kopiert, die Datenbank gestartet und darauf gewartet, dass sie die Dateien "repariert", und sie dann mit MySQLldump extrahiert.
quelle
In meinem Fall reichte es aus, das tc.log in / var / lib / mysql zu entfernen, um mariadb / mysql erneut zu starten.
quelle