GNU/Linux >> Znalost Linux >  >> Linux

Obnovit databázi mysql - mysql/mysqldump poskytuje tabulku <database>.<tablename> neexistuje (1146)

Našli jsme někoho, kdo klade podobnou otázku:MySQL> Tabulka neexistuje. Ale dělá (nebo by měl).

Mike Dacre měl odpověď, která vyřešila můj problém. Problém byl v tom, že soubory ib_logfile0 a ib_logfile1 (a možná některé další soubory ib* v kořenovém adresáři mysql/) byly v rozporu s mojí novou instalací mysql. Nemůžete jednoduše vložit db soubory ze starého adresáře mysql/ a očekávat, že to bude fungovat.

Co jsem udělal pro obnovení databáze, bylo zálohování mého aktuálního /var/lib/mysql/ na novou instalaci:

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

Poté zkopírujte adresář nouzové zálohy do /var/lib

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

Poté odpovídajícím způsobem nastavte oprávnění (v případě potřeby viz ~/mysql.bku/). Mohou existovat efektivnější příkazy, ale pro úplnost uvádím to, co vím, pro případ, že by to potřeboval někdo s méně zkušenostmi.

$ 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

A znovu spusťte mysql

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

Poté jsem zálohoval databáze, které jsem potřeboval:

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

Když jsem skončil, vrátil jsem adresář mysql/ zpět a poté jsem importoval databáze ze souborů výpisu.

$ 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

Problém vyřešen, nyní mám správný export databáze a mysql také běží správně. Zbývá pouze následovat průvodce Obnovení wiki ze zálohy.


Linux
  1. Zrušte tabulky v MySQL

  2. Jak naplánovat zálohu databáze MySQL na Ubuntu

  3. Duplikovat celou databázi MySQL

  1. Závažná chyba:Nelze otevřít a zamknout tabulky oprávnění:Tabulka 'mysql.host' neexistuje

  2. Přejmenujte databázi MySQL

  3. Zastavení databázového serveru MySQL:mysqld se nezdařilo

  1. Jak kopírovat tabulky MySQL mezi databázemi

  2. MySQL:Jak zálohovat (vypsat) a obnovit databázi pomocí mysqldump

  3. Jak opravit poškozenou tabulku databáze MySQL