Obnova MySQL tablice kada samo .frm datoteke i. ibd su dostupni

Kako riješiti “MySQL greška #1146 -Sto ne postoji” uzrokuje premještanje .IDB datoteka (InnoDB) izravno između imenika (žlica za juhu).

logo_mysql

Problem

Mnoge probleme koje imamo su probleme smo stvorili. Sam postaviti stranice koristeći WordPress i mislio: Kako bi bilo vidjeti kako se to radi u PHP-u 7? ok, kao moj WampServer koristi PHP 5.6, tako da sam “sretan” ideja za nadogradnju na WampServer 2.5 (Apache-2.4.9, MySQL-5.6.17, PHP 5.5.12) za WampServer 3.0.6 (Apache 2.4.23, MySQL 5.7.14, 5.6.25 PHP i Php 7.0.10).

naravno, pokrenuo sigurnosna kopija, Ali moj veliki kalem je za izvoz SQL s takvih web-mjesta, Umjesto toga, pravedan je napravio kopiju MySQL datoteka (MySQL/podaci) i aplikacije (www/web-mjesta). Bio sam uvjeren da će uspjeti, kao inače.

Nakon što instalirate novi WampServer sa PHP 7, sigurnosna kopija kartoteka i aplikacija se, samo kada sam išla testirati u pregledniku, Nije se pojavio na mjestu, Ali zaslon WordPress instalacije kao da je to novo web-mjesto. On je sjajan! Otvorite PHPMyAdmin i provjerite da li baza podataka je bilo u redu i vidio sam da, Unatoč tome što su navedene u bazi podataka, Kada ste kliknuli na vrhu tablice za prikaz podataka u sljedeću poruku o pogrešci:

  MySQL Pogreška #1146 -Tablica <TABLE_NAME> doesn ' t postoji

Sam i saznala sam da možete kopirati ili premjestiti datoteke izravno na drugi MySQL MySQL direktorij ako datoteke MyISAM tip, Oni koji imaju nastavak frm datoteke. STRANE MYD. MYI. Ne znam što se dogodilo, Ali moj baza podataka se pojavio kao InnoDB (.frm i. idb). Nažalost, samo nakon što je činjenica da MySQL upozoreni dokumentacije:

  Ne mogu slobodno kretati .IBD datoteke baze podataka imenika na možete s MyISAM tablici datoteke. 
  Definicija tablice pohranjene u zajednički InnoDB žlica za juhu uključuje naziv baze podataka. 
  Transakcija ID-ovi i zapisnik slijed brojeva spremljenih u žlica za juhu datoteke također se razlikuju između baza podataka.

Rješenje

Cheguei je ver algumas soluções simples, Mas vou descrever aqui única que drugi funcionou par. mim, apesar de parecer bem mais complexa, encontrada nijedan Post “Obnavljanje tablica(s) u MySQL bazu podataka frm ili ibd datoteke kada su dostupni samo“.

Obvezni ulozi, Međutim, Naslov de conhecimento, Vale lembrar que em relação ao tipo InnoDB, MySQL strukturu straže u datoteke i podatke u ibd .frm.. Dovoljno teorija, Prijeđimo na stvar!

Korak 1: Ponovno stvorite strukturu .frm datoteke

Kao što je rekao, u frm sadrži strukturu tablice. Prvo moramo dohvatiti ove strukture za popunjavanje podataka. Vi to možete 3 različite metode opisane u nastavku, Ali prije, Da ti kažem nešto o na “MySQL komunalije”.

MySQL komunalije | mysqlfrm

Ako ne namjeravate koristiti prvu metodu predložio (Online) tako da trebate koristiti alat “mysqlfrm” koje je “MySQL komunalije“.

Ovaj alat će ekstrakt struktura podataka i generiranje tablice stvaranje SQL skripta. Za ovo, Preuzimanje datoteka “MySQL komunalije” (nešto kao što je mysql-korisni programi-1.6.4-winx64.msi) i uvesti koga u službu.

Otvorite konzolu (Naredba / Od u) i koristite naredbu CD za pomicanje zadani instalacijski direktorij (nešto kao C:\C:Program FilesMySQLMySQL komunalije 1.6\). Imajte na umu da u ovom direktoriju nema izvršnu mysqlfrm.exe.

  CD-A "C:\C:Program FilesMySQLMySQL Utilities 1.6"

Odaberite samo jednu od metoda ispod izdvojiti strukturu tablice u .frm datoteke:

1º Metoda | Online

1. Na web-mjestu HTTPS://Recovery.twindb.com/;
2. Na izborniku kliknite “Obnova struktura” a onda u “frm datoteku.“;
3. Kliknite na gumb “Preglednik…” i odaberite frm datoteke; i
4. Kliknite na gumb “Prijenos” i original stvaranje tablice će se prikazati na zaslonu.

Moguće je poslati više datoteka frm jednom generira jednu skriptu sa svim tablicama. Pravedan to pustiti te stvoriti u .zip sa svojim .frm prije “Preglednik/Upload”.

2º Metoda | Koristeći –Dijagnostički

/* Generički primjer */
   mysqlfrm-dijagnostički "<put izvora>/mytable.frm" > "<Destination/Path/recovered_mytable.SQL>"
 
/* Primjer u praksi s wp_posts.frm tablica u WordPress */
   mysqlfrm --Dijagnostički "C:\wampbinmysqlmysql5.6.17datameubancowp_posts.frm" > "C:\recovered_wp_posts.SQL"

3º Metoda | Koristeći –Poslužitelj

/* Generički primjer */
  mysqlfrm-poslužitelj=korijen:MojaLozinka@localhost-luka=3311 "<put izvora>/mytable.frm" > "<put odredišne>/recovered_mytable.SQL"
 
/* Primjer u praksi s wp_posts.frm tablica u WordPress */
  mysqlfrm --Poslužitelj=korijen@localhost --luka=3307 ""(C):\wampbinmysql\mysql5.6.17\data\meubanco\wp_posts.frm" > "(C):\recovered_wp_posts.sql"

Não use a porta do MySQL! Escolha qualquer outra disponível. Note que o comando redireciona a saída para um arquivo .sql que é salvo no caminho especificado (u slučaju, (C):).

Korak 2: Recrie a tabela no seu Banco de Dados

Em uma base de dados nova, Stvaranje tablice s generirane skripte u korak 1. Ja osobno instaliran čist inačici WampServer i koristiti PHPMyAdmin (http://localhost/phpmyadmin /) Stvaranje baze podataka i uvoz SQL skripte stvorene u koraku 1 (recovered_wp_posts.SQL). Ova skripta će stvoriti 2 datoteke u direktorij tvoj MySQL baza podataka:

  SUA_TABELA.frm SUA_TABELA.IDB

U mom slučaju, Ove datoteke su stvorene u (C):\wamp64binmysqlmysql5.7.14data<moje mjesto>. IE, procure sua instalação do MySQL e note que no diretório data haverá sua base de dados e os dois arquivos citados.

Korak 3: Remova o novo arquivo .idb

Para remover o novo arquivo .idb, execute o seguinte comando SQL:

/* Generički primjer */
  ALTER TABLE mytable DISCARD TABLESPACE;
 
/* Exemplo na prática com a tabela wp_posts do WordPress */
  ALTER TABLE wp_posts DISCARD TABLESPACE;

Ova naredba uklanja vezu između tablice i žlica za juhu (Gdje su fizički pohranjene datoteke baze podataka), i ukloniti datoteku .IDB.

Korak 4: Kopirajte datoteku stari .IDB

Izvornu datoteku .IDB (koji sadrži podatke) treba kopirati kod koji je dobio izbrisati u .IDB korak 3. Koristite Ctrl + C i Ctrl + V ili ubiti pomoću naredbenog retka.

Korak 5: Ponovno aktiviranje tablice

Neispravan link u korak 3 treba vratiti sa slijedeće naredba:

/* Generički primjer */
  ALTER TABLE mytable uvoz žlica za juhu;
 
/* Exemplo na prática com a tabela wp_posts do WordPress */
  ALTER TABLE wp_posts uvoz žlica za juhu;

Ne brinite ako se pojavi neki upozorenja, Međutim, Možda je Opći kvar koji se pojavljuju sljedeće greške:

  #1808 - Sheme ne podudaraju (Tablica je ROW_TYPE_DYNAMIC red oblika, .IBD datoteka je ROW_TYPE_COMPACT red oblika.)

U ovom slučaju, Ovo se dogodilo zbog drugačije od mysql 5.7.14 (NOVI) CRIA je tabela padrão em relação ao Mysql-5.6.17 (ANTIGO), Sem o ROW_FORMAT = kompaktni.

Tako, se pozvao si žele je usando MySQL > = ao mysql5.7.14, acrescentar fazer é tudo que pozvao si žele precisa ROW_FORMAT = kompaktnih na definição de criação da tabela.

  CREATE TABLE 'wp_posts' (. . .) MOTOR=InnoDB ROW_FORMAT=kompaktni

Završetke erros

Apenas odlomak deixar registrado, obvezni ulozi de obter sucesso na extração de pilastara učiniti .frm, aktivnu alguns erros:

  # Izvor na localhost: ... povezani.
  # Počevši spawned poslužitelj na portu 3304 ... Pogreška pri pokušaju zaustaviti nije spawned poslužitelja.  Proces id = 6648.
  POGREŠKA: Ikra poslužitelja nije uspjelo. Klon poslužitelj greška: Ne može komunicirati s novi primjer. Id procesa = 6648.. Za dijagnozu, ponovo pokrenite uslužni program i koristite na --verbalizam mogućnost za prikaz poruke iz spawned poslužitelja i ispravite pogreške prikazani potom ponovno pokrenite uslužni program.
  USPJEH: Napredak sa PID 6648 (podređeni proces PID 7264) je prekinut.
Traceback (najnoviji poziv zadnja):
  Datoteka "G:\adebuildsb_0-19921351-1470074463.97Python-2.7.6-Windows-x86-64bitlibsite-packagescx_FreezeinitscriptsConsole.py", linija 27, u <Modul>
  Datoteka "scripts\mysqlfrm.py", linija 422, u <Modul>
  Datoteka ".\mysql\utilities\command\read_frm.py", linija 439, u read_frm_files
  Datoteka ".\mysql\utilities\command\read_frm.py", linija 166, u _spawn_server
  Datoteka ".\mysql\utilities\command\serverclone.py", linija 180, u clone_server
  Datoteka ".\mysql\utilities\common\tools.py", linija 273, u get_mysqld_version IOError: [U 13] -Ne može: 'version_check'

U konkretnom slučaju, WordPress, Uklonite skriptu koja generira SQL generira pod. frm, sve stavke zadani ‘0000-00-00 00:00:00’, Inače, će uhvatiti greška:

  #1067 - Zadana vrijednost (zadani) Ne vrijedi za 'comment_date'

To je to!

Fontovi

http://www.voxteneo.com/restoring-tables-mysql-database-frm-ibd-files-available/

https://medium.com/@alexquick/transporting-mysql-tablespaces-from-5-6-to-5-7-517c01345fbb#.72zermd8b

http://dev.mysql.com/doc/refman/5.5/en/innodb-multiple-tablespaces.html

https://lanmenezesbr.wordpress.com/2014/10/21/mysql-erro-1146-table-doesnt-exist/

http://stackoverflow.com/questions/7759170/mysql-table-doesnt-exist-but-it-does-or-it-should

Ukupno pogodaka: 21423

12 Komentari na “Obnova MySQL tablice kada samo .frm datoteke i. ibd su dostupni

  1. Rodrigo Rekao je:

    Što učiniti kada se prikaže sljedeća poruka o pogrešci: #1815 – Interna pogreška. Ne mogu resetirati LSNs u tablici “moje mjesto”.”myTable”: Oštećenje strukture podataka.
    Možete ručno pokrenuti umeće podatke? Kako to učiniti?
    Od već Hvala.

  2. Cristian U Rekao je:

    Bok Taylor,

    Kako je te razriješiti ovaj greška:
    POGREŠKA: Ikra poslužitelja nije uspjelo. Klon poslužitelj greška: Ne može komunicirati s novu instancu. Proces id = 6648.. Za dijagnozu, ponovo pokrenite uslužni program i koristiti u –verbalizam mogućnost za prikaz poruke iz spawned poslužitelja i ispravite pogreške prikazani potom ponovno pokrenite uslužni program.
    USPJEH: Napredak sa PID 6648 (podređeni proces PID 7264) je prekinut.

    Stalno dobivam istu poruku i ne znam kako ´ to riješiti.

    Hvala

  3. Balkan Luiz de Freitas Rekao je:

    Čestitam Taylor, Ali poučni nemoguće!! Ti si isti!

    zagrljaj i hvala za dijeljenje svoje iskustvo!

ostavi odgovor

Na vašu e-mail adresu će biti objavljen. Obavezna polja označena su sa *