GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Mysql-Datenbank wiederherstellen - mysql/mysqldump ergibt Tabelle <Datenbank>. <Tabellenname> existiert nicht (1146)

Ich habe jemanden gefunden, der eine ähnliche Frage gestellt hat:MySQL> Tabelle existiert nicht. Aber es tut es (oder es sollte).

Mike Dacre hatte die Antwort, die mein Problem löste. Das Problem war, dass die ib_logfile0 und ib_logfile1 (und vielleicht einige der anderen ib*-Dateien im mysql/-Stammverzeichnis) nicht mit meiner neuen Installation von mysql übereinstimmten. Sie können nicht einfach db-Dateien aus dem alten mysql/-Verzeichnis einfügen und erwarten, dass es funktioniert.

Was ich getan habe, um die Datenbank wiederherzustellen, war, meine aktuelle /var/lib/mysql/ auf der Neuinstallation zu sichern:

$ sudo service mysql stop # Stop mysql. Command could be different on different distros
$ sudo mv /var/lib/mysql ~/mysql.bku

Kopieren Sie dann das Notfall-Backup-Verzeichnis nach /var/lib

$ sudo cp -R /media/NAS/Backup/mysql /var/lib/

Legen Sie dann die Berechtigungen entsprechend fest (siehe ~/mysql.bku/ als Referenz, falls erforderlich). Es mag effizientere Befehle dafür geben, aber ich füge das, was ich weiß, der Vollständigkeit halber ein, falls jemand mit weniger Erfahrung es brauchen könnte.

$ sudo chown -R mysql:mysql /var/lib/mysql
$ sudo find /var/lib/mysql/ -type d -exec chmod 700 {} \;
$ sudo find /var/lib/mysql/ -type f -exec chmod 660 {} \;
$ sudo chmod 644 /var/lib/mysql/debian-5.1.flag # Not sure what this is but the permissions were a bit different so include it just in case

Und starten Sie mysql erneut

$ sudo service mysql start # Again command might be different on different distros

Dann habe ich die benötigten Datenbanken gesichert:

$ mysqldump -u root -p mediawiki-1_19_1 -c | gzip -9 > wiki.2012-11-15.sql.gz

Als ich fertig war, legte ich das mysql/-Verzeichnis zurück und importierte dann die Datenbanken aus den Dump-Dateien.

$ sudo service mysql stop
$ sudo mv /var/lib/mysql ~/mysql-discard # Too nervous to start typing "sudo rm -r /" for /var/lib/mysql, so move it away instead
$ sudo mv ~/mysql.bku /var/lib/mysql
$ sudo service mysql start

Problem gelöst, ich habe jetzt einen ordnungsgemäßen Export der Datenbank und mysql läuft auch ordnungsgemäß. Alles, was übrig bleibt, ist der Anleitung zum Wiederherstellen eines Wikis aus einer Sicherungskopie zu folgen.


Linux
  1. So reparieren Sie eine beschädigte MySQL-Datenbanktabelle

  2. Löschen Sie Tabellen in MySQL

  3. MySQL-Fehlertabelle „mysql.servers“ existiert nicht

  4. Gesamte MySQL-Datenbank duplizieren

  5. So kopieren Sie eine Tabelle von einer MySQL-Datenbank in eine andere MySQL-Datenbank

So erstellen Sie eine MySQL-Datenbank in Workbench

So reparieren Sie die MySQL-Datenbank

So sichern und wiederherstellen Sie eine MySQL-Datenbank

So optimieren Sie MySQL-Tabellen

So fügen Sie Daten in eine MySQL-Datenbank mit PHP in XAMPP ein

Erstellen Sie eine MySQL-Datenbank und -Tabelle mit PHP in XAMPP