GNU/Linux >> Belajar Linux >  >> Linux

Pulihkan database mysql - mysql/mysqldump memberikan tabel <database>.<tablename> tidak ada (1146)

Menemukan seseorang yang mengajukan pertanyaan serupa:MySQL> Tabel tidak ada. Tapi memang begitu (atau seharusnya).

Mike Dacre punya jawaban yang memecahkan masalah saya. Masalahnya adalah ib_logfile0 dan ib_logfile1 (dan mungkin beberapa file ib* lain di direktori root mysql/) tidak konsisten dengan instalasi baru mysql saya. Anda tidak bisa begitu saja memasukkan file db dari direktori mysql/ lama dan mengharapkannya berfungsi.

Apa yang saya lakukan untuk memulihkan database adalah mencadangkan /var/lib/mysql/ saya saat ini pada instalasi baru:

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

Kemudian salin direktori cadangan darurat ke /var/lib

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

Kemudian atur izin dengan tepat (lihat ~/mysql.bku/ untuk referensi jika diperlukan). Mungkin ada perintah yang lebih efisien untuk ini, tetapi saya menyertakan apa yang saya ketahui untuk kelengkapan jika seseorang dengan pengalaman yang lebih sedikit membutuhkannya.

$ 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

Dan mulai mysql lagi

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

Lalu saya mencadangkan database yang saya butuhkan:

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

Ketika saya selesai, saya mengembalikan direktori mysql/ dan kemudian mengimpor database dari file dump.

$ 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

Masalah terpecahkan, saya memiliki ekspor database yang tepat sekarang dan mysql juga berjalan dengan baik. Yang tersisa hanyalah mengikuti panduan Mengembalikan wiki dari cadangan.


Linux
  1. Jatuhkan tabel di MySQL

  2. Cara menjadwalkan pencadangan basis data MySQL di Ubuntu

  3. Kesalahan fatal:Tidak dapat membuka dan mengunci tabel hak istimewa:Tabel 'mysql.host' tidak ada

  1. Cara menyalin tabel MySQL antar database

  2. Menghentikan server database MySQL:mysqld gagal

  3. Nama tabel sensitif huruf MySQL di Linux

  1. MySQL:Cara Backup (Dump) dan Restore Database Menggunakan mysqldump

  2. Cara Memperbaiki Tabel Database Mysql yang Rusak

  3. Impor Database MySQL