Palauttaa MySQL taulukoita, kun ibd .frm tiedostoja ja ovat käytettävissä

Miten ratkaista “MySQL virhe #1146 -Taulua ei ole” aiheuttama .IDB tiedostojen siirto (InnoDB) suoraan välillä hakemistoja (tablespace).

logo_mysql

Ongelma

Monet ongelmat ovat ongelmiin loimme. Oli vain perustaa sivuston käyttämällä WordPress ja ajattelin: Miten olisi nähdä miten tämä toimii php 7? Okei, minun WampServer käytetty PHP 5.6, joten jouduin “Iloinen” idea päivittää WampServer 2.5 (Apache 2.4.9, MySQL-5.6.17, PHP 5.5.12) varten WampServer 3.0.6 (Apache 2.4.23, MySQL 5.7.14, 5.6.25 PHP ja Php 7.0.10).

Tietysti, aloitti varmuuskopiointi, mutta minun suuri liukastua oli halua viedä SQL tällainen sivusto, Sen sijaan, juuri tehnyt kopion MySQL-tiedostoja (MySQL/data) ja (www-sivut). Olin varma, se toimii, kuin muina aikoina.

Kun olet asentanut uuden WampServer php 7, taaksepäin arkistoida ja sovellus takaisin, vain kun menin testata selaimen, ei näy sivuston, WordPress asennus ruutu ikään kuin uusi sivusto. Jäädytti! Avaa PHPMyAdmin ja tarkista jos tietokanta on Ok ja huomasin, että, Vaikka on lueteltu tietokannassa, Kun napsautetaan päälle taulukon tietojen seuraava virhesanoma:

  MySQL Virhe #1146 -Taulukko <TABLE_NAME> hoitomaksut ' t olla

Olen etsinyt ja olen vain todennut, että voit vain kopioida tai siirtää tiedostoja suoraan toiseen MySQL MySQL hakemistoon, jos tiedostot ovat MyISAM tyyppi, ne frm tiedostopääte. MYD. MYI. En tiedä mitä tapahtui, mutta minun tietokanta esiintynyt InnoDB (.frm ja idb). Valitettavasti, vasta sen jälkeen, että MySQL varoitetaan asiakirjat:

  Ei voi vapaasti liikkua .IBD tiedostoja tietokanta hakemistot että Voit MyISAM pöydän tiedostot. 
  Taulukkomääritys tallennetaan jaettu InnoDB ruokalusikka sisältää tietokannan nimi. 
  Tapahtuman tunnukset ja loki Taulutilan tiedostoihin tallennettuja numeroita vaihtelevat myös tietokantojen välillä.

Ratkaisu

Cheguei ver algumas soluções yksinkertaiset, Mas vou descrever aqui única que realmente funcionou para mim, apesar de parecer bem mais complexa, encontrada ei Post “Palauttaa taulukon(s) MySQL-tietokanta frm tai ibd-tiedostoja on saatavilla vain“.

Antet, Kuitenkin, título de conhecimento, Vale lembrar que em relação ao tipo InnoDB, MySQL vartija rakenne tiedostoja ja tietoja ibd .frm.. Tarpeeksi teoria, Katsotaanpa leikata Chase!

Askel 1: Luo uudelleen rakenteen .frm-tiedostoja

Kuten sanoi, frm sisältää taulukkorakenne. Ensin täytyy hakea tämä rakenne tiedot täytetään. Voit tehdä tämän 3 jäljempänä esitettyjen eri menetelmien, mutta ennen kuin, Haluan kertoa teille jotain “MySQL Utilities”.

MySQL Utilities | mysqlfrm

Jos et aio käyttää samaa menetelmää ehdotti (Verkossa) joten sinun täytyy käyttää työkalua “mysqlfrm” toteuttaa “MySQL Utilities“.

Tämä työkalu purkaa tietojen rakenteen ja Luo taulukko luominen SQL-komentosarja. Tähän, Lataa “MySQL Utilities” (jotain mysql utilities 1.6.4 winx64.msi) ja asenna se.

Avaa konsoli (Komento / Ja) ja siirrä oletusasennuskansio käyttämällä CD-komentoa (jotain C:\C:Program FilesMySQLMySQL Utilities 1.6\). Huomaa, että tämän hakemiston executable mysqlfrm.exe.

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

Valita vain yhden alla olevia tapoja purkaa taulukkorakenteen .frm tiedostoihin sisältyvät:

1º Menetelmä | Verkossa

1. Siirry sivustoon HTTPS://Recovery.twindb.com/;
2. Valitse valikosta “Palauta rakenne” ja sitten “frm tiedoston.“;
3. Napsauta painiketta “Selaimen…” ja valitse frm-tiedosto; ja
4. Napsauta painiketta “Lataa” ja taulun luonnin komentosarjaa näkyvät näytössä.

On mahdollista lähettää useita tiedostoja frm kerran tuottaa yhden käsikirjoituksen kaikki taulukot. Vain kertoa sinulle luoda .zip sen .frm ennen “Selain/lataa”.

2º Menetelmä | Käyttämällä –diagnostiset

/* Yleinen esimerkki */
   mysqlfrm-diagnostiikkaan "<lähde/polku>/mytable.frm" > "<Destination/Path/recovered_mytable.SQL>"
 
/* Esimerkki käytännön wp_posts.frm-taulukko WordPress */
   mysqlfrm --diagnostiset "C:\wampbinmysqlmysql5.6.17datameubancowp_posts.frm" > "C:\recovered_wp_posts.SQL"

3º Menetelmä | Käyttämällä –Palvelin

/* Yleinen esimerkki */
  mysqlfrm-palvelin=root:mypassword@localhost-port=3311 "<lähde/polku>/mytable.frm" > "<Kohdepolku />/recovered_mytable.SQL"
 
/* Esimerkki käytännön wp_posts.frm-taulukko WordPress */
  mysqlfrm --Palvelin=root@localhost --Port=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 (no caso, (C):).

Askel 2: Recrie a tabela no seu Banco de Dados

Em uma base de dados nova, crie uma tabela com o script gerado no Passo 1. Olen henkilökohtaisesti asentaa puhtaan version WampServer ja käyttää PHPMyAdmin (http://localhost/phpmyadmin /) luoda tietokanta ja tuoda vaiheessa luotu SQL-komentosarja 1 (recovered_wp_posts.SQL). Tämä komentosarja luo 2 MySQL-tietokannan hakemiston tiedostot:

  SUA_TABELA.frm SUA_TABELA.IDB

Minun tapauksessani, Nämä tiedostot luotiin (C):\wamp64binmysqlmysql5.7.14data<paikkani>. IE, procure sua instalação do MySQL e note que no diretório data haverá sua base de dados e os dois arquivos citados.

Askel 3: Remova o novo arquivo .idb

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

/* Yleinen esimerkki */
  ALTER TABLE mytable DISCARD TABLESPACE;
 
/* Exemplo na prática com a tabela wp_posts do WordPress */
  ALTER TABLE wp_posts DISCARD TABLESPACE;

Este comando remove o link entre a tabela e o tablespace (Jos on fyysisesti tallennettu tietokantatiedostot), ja poistaa .IDB-tiedoston.

Askel 4: Kopioi vanha .IDB-tiedosto

Alkuperäinen .IDB tiedosto (sisältävän tietoja) on kopioitu paikka, joka sai poistettu .IDB vaiheessa 3. Käytä Ctrl + C ja Ctrl + V tai tappaa itsesi käyttämällä komentorivin avulla.

Askel 5: Aktivoi taulukko

Rikkinäisen linkin vaiheessa 3 on palautettava seuraavalla komennolla:

/* Yleinen esimerkki */
  ALTER TABLE mytable tuo TABLESPACE;
 
/* Exemplo na prática com a tabela wp_posts do WordPress */
  ALTER TABLE wp_posts tuonti TABLESPACE;

Älä huolestu, jos saat joitakin varoituksia, Kuitenkin, Se voi olla yleinen vika esiintyy seuraavan virheen:

  #1808 - Rakenteen ristiriita (Taulukon ROW_TYPE_DYNAMIC rivin muoto on, .IBD-tiedoston ROW_TYPE_COMPACT rivin muoto on.)

Tässä tapauksessa, Tämä tapahtui koska toisin kuin mysql 5.7.14 (UUSI) luo oletusarvoisesti taulukon verrattuna Mysql-5.6.17 (VANHA), SEM o ROW_FORMAT = CD.

Niin, se você está toteuttaa MySQL > = ao mysql5.7.14, Tudo que você precisa fazer é acrescentar ROW_FORMAT = kompakti na definição de criação da tabela.

  CREATE TABLE 'wp_posts ” (. . .) MOOTTORI=InnoDB ROW_FORMAT=kompakti

Outros erros

Apenas para deixar registrado, Antes de obter sucesso na extração de dados tehdä .frm, tiivin alguns erros:

  # Lähde localhost: ... kytketty.
  # Alkaa poikinut palvelimen portti 3304 ... Virhe yritettäessä lopettaa epäonnistui poikinut palvelin.  Prosessitunnus = 6648.
  VIRHE: Kutemaan palvelimeen epäonnistui. Klooni palvelinvirhe: Ei saanut yhteyttä Uusi esimerkiksi. Prosessitunnus = 6648.. Diagnosoida, Suorita apuohjelma uudelleen ja Käytä että --Monisanaisuus mahdollisuus lukemiseen poikinut palvelimelta ja korjata mahdolliset virheet esitteli ja suorita sitten apuohjelma uudelleen.
  MENESTYS: Prosessi, jonka Prosessitunnus 6648 (lapsi jalostaa PID 7264) on päättynyt.
Jäljitys (viimeisimmän puhelun viimeinen):
  Tiedosto "G:\adebuildsb_0-19921351-1470074463.97Python-2.7.6-Windows-x86-64bitlibsite-packagescx_FreezeinitscriptsConsole.py", rivi 27, Tässä <moduuli>
  Tiedosto "scripts\mysqlfrm.py", rivi 422, Tässä <moduuli>
  Tiedosto ".\mysql\utilities\command\read_frm.py", rivi 439, Tässä read_frm_files
  Tiedosto ".\mysql\utilities\command\read_frm.py", rivi 166, Tässä _spawn_server
  Tiedosto ".\mysql\utilities\command\serverclone.py", rivi 180, Tässä clone_server
  Tiedosto ".\mysql\utilities\common\tools.py", rivi 273, Tässä get_mysqld_version IOError: [Errno 13] Käyttö estetty: ”version_check”

Ei caso específico WordPress, Você precisa remover script que gerou o SQL obtidos em .frm, Todas kuin entradas ' laiminlyöminen ‘0000-00-00 00:00:00”, muuten, vai pegar o erro:

  #1067 - Valor padrão (oletus) inválido para 'comment_date'

Se on siinä!

Fontes

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

Osumia yhteensä: 21446

12 kommentteja “Palauttaa MySQL taulukoita, kun ibd .frm tiedostoja ja ovat käytettävissä

  1. Rodrigo sanoi:

    Mitä tehdä, kun näet seuraava virhesanoma: #1815 – Sisäinen virhe. Ei voi palauttaa LSNs-taulukossa “paikkani”.”myTable”: Aineisto kokoonpano korruptio.
    Voiko käyttää lisää tietoja manuaalisesti? Como fazer Julia?
    Desde já te agradeço.

  2. Cristian U sanoi:

    Hei Taylor,

    Miten ratkaista tämä virhe:
    VIRHE: Kutemaan palvelimeen epäonnistui. Klooni palvelinvirhe: Pysty kommunikoimaan uusi esiintymä. Prosessitunnus = 6648.. Diagnosoida, Suorita apuohjelma uudelleen ja käyttää –Monisanaisuus mahdollisuus lukemiseen poikinut palvelimelta ja korjata mahdolliset virheet esitteli ja suorita sitten apuohjelma uudelleen.
    MENESTYS: Prosessi, jonka Prosessitunnus 6648 (lapsi jalostaa PID 7264) on päättynyt.

    Saan saman viestin ja don´t tietää, miten ratkaista se.

    Kiitos

Jätä vastaus

Sähköpostiosoitteesi ei julkaista. Pakollinen kenttä *