Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Kembalikan struktur tabel dari file frm dan ibd

Saya memulihkan tabel hanya dari .frm dan .idb file.

Dapatkan kueri SQL untuk membuat tabel

Jika Anda sudah mengetahui skema tabel Anda, Anda dapat melewati langkah ini.

  1. Pertama, instal Utilitas MySQL .Kemudian Anda dapat menggunakan mysqlfrm perintah di command prompt (cmd).

  2. Kedua, dapatkan kueri SQL dari .frm file menggunakan mysqlfrm perintah:

    mysqlfrm --diagnostic <path>/example_table.frm
    

Kemudian Anda bisa mendapatkan kueri SQL untuk membuat tabel terstruktur yang sama. Seperti ini:

CREATE TABLE `example_table` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(150) NOT NULL,
  `photo_url` varchar(150) NOT NULL,
  `password` varchar(600) NOT NULL,
  `active` smallint(6) NOT NULL,
  `plan` int(11) NOT NULL,
PRIMARY KEY `PRIMARY` (`id`)
) ENGINE=InnoDB;

Buat tabel

Buat tabel menggunakan kueri SQL di atas.

Jika data lama masih ada, Anda mungkin harus menghapus database dan tabel masing-masing terlebih dahulu. Pastikan Anda memiliki cadangan file data.

Pulihkan data

Jalankan kueri ini untuk menghapus data tabel baru:

ALTER TABLE example_table DISCARD TABLESPACE;

Ini akan menghapus koneksi antara .frm yang baru file dan (baru, kosong) .idb mengajukan. Hapus juga .idb file dalam folder.

Kemudian, masukkan .idb yang lama file ke dalam folder baru, mis.:

cp backup/example_table.ibd <path>/example_table.idb

Pastikan bahwa .ibd file dapat dibaca oleh mysql pengguna, mis. dengan menjalankan chown -R mysql:mysql *.ibd dalam folder.

Jalankan kueri ini untuk mengimpor data lama:

ALTER TABLE example_table IMPORT TABLESPACE;

Ini mengimpor data dari .idb file dan akan memulihkan data.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL di 2018:Apa yang ada di 8.0 dan Pengamatan Lainnya

  2. Bagaimana Fungsi REGEXP_SUBSTR() Bekerja di MySQL

  3. Bagaimana cara memigrasi database SQL Server ke MySQL?

  4. Apakah mungkin untuk memiliki indeks berbasis fungsi di MySQL?

  5. Fungsi MySQL COS() – Mengembalikan Kosinus Angka di MySQL