
Problemet
Många av de problem vi har är problem vi skapat. Jag hade precis satt upp en webbplats som använder WordPress och tänkte: Vad sägs om att se hur detta fungerar i PHP 7? Okej, som min WampServer används PHP 5.6, så jag fick “Lycklig” idé att uppgradera den WampServer 2.5 (Apache-2.4.9, MySQL-5.6.17, PHP 5.5.12) för WampServer 3.0.6 (Apache 2.4.23, MySQL 5.7.14, 5.6.25 PHP och Php 7.0.10).
Självklart, Startat av säkerhetskopiering, men min stora slip var väljer att inte exportera SQL från sådan webbplats, Istället, gjorde bara en kopia av filerna MySQL (MySQL/data) och tillämpning (www/webbplats). Jag var säker på att det skulle fungera, som andra gånger.
Efter installerande den ny WampServer med PHP 7, sätta de säkerhetskopiera filerna och ansökan tillbaka, bara när jag gick till testa av webbläsaren, inte visa upp webbplatsen, men skärmen av WordPress installation som om det vore en ny webbplats. Frös upp! Öppna PHPMyAdmin och kontrollera för att se om databasen var Ok och jag såg att, Trots att han är upptagna i databasen, När du klickat på toppen av tabellen för att visa data följande felmeddelande:
MySQL Fel #1146 -Tabell <TABLE_NAME> spelar ' t finns |
Jag har letat och jag fick reda på att du bara kan kopiera eller flytta filer direkt till en annan MySQL MySQL katalog om filer är MyISAM typ, de med frm filändelsen. MYD. MYI. Jag vet inte vad som hände, men min databas visades som InnoDB (.frm och idb). Tyvärr, först efter det faktum att MySQL larmade dokumentation:
Du kan inte fritt flytta .IBD filer mellan databaskataloger som Du kan med MyISAM bord filer. Tabelldefinitionen lagras i InnoDB delade registerutrymmet innehåller databasens namn. Transaktionen ID och Logga in sekvensnummer som lagras i registerutrymmet filer skiljer sig också mellan databaser. |
Lösning
Cheguei en ver algumas soluções simples, Mas vou descrever aqui en única que realmente funcionou para mim, apesar de parecer bem mais complexa, encontrada inget inlägg “Återställa tabellen(s) i MySQL-databas när frm eller ibd filer är endast tillgängliga“.
Antes, Emellertid, en título de conhecimento, Vale lembrar que em relação ao tipo InnoDB, MySQL din vakt struktur i filer och data i frm. ibd. Tillräckligt teori, Låt oss rakt på sak!
Steg 1: Återskapa strukturen frm filer
Som sagt, frm innehåller din tabellstruktur. Först måste vi hämta denna struktur för att sedan fylla data. Du kan göra detta 3 olika metoder beskrivs nedan, men före, Låt mig berätta något om den “MySQL-verktyg”.
MySQL-verktyg | mysqlfrm
Om du inte tänker använda den första metoden som föreslås (Online) så måste du använda verktyget “mysqlfrm” som tillhandahålls av den “MySQL-verktyg“.
Detta verktyg kommer att extrahera datastrukturen och generera tabell skapa SQL-skript. För detta, Ladda ner “MySQL-verktyg” (något som mysql-verktyg-1.6.4-winx64.msi) och installera det..
Öppna konsolen (Kommandot / Av den) och Använd kommandot CD för att flytta standardinstallationskatalogen (något som C:\C:Program FilesMySQLMySQL verktyg 1.6\). Observera att det i denna katalog finns körbara mysqlfrm.exe.
CD "C:\C:Program FilesMySQLMySQL Utilities 1.6" |
Välj bara en av metoderna nedan att extrahera din tabellstruktur som ingår i de frm filerna:
1º Metod | Online
1. Gå till webbplatsen HTTPS://Recovery.twindb.com/;
2. Klicka på menyn “Återställa strukturen” och sedan i “frm filer från.“;
3. Klicka på knappen “Webbläsare…” och välj din frm-fil; och
4. Klicka på knappen “Ladda upp” och tabell skapande skriptet kommer att visas på skärmen.
Det är möjligt att skicka flera filer frm en gång genererar ett enda skript med alla tabeller. Bara för att låta dig skapa en zip med alla dess frm innan “Webbläsare/Upload”.
2º Metod | Med hjälp av –diagnostiska
/* Generiskt exempel */ mysqlfrm-diagnostik "<källsökvägen />/mytable.frm" > "<destination/Path/recovered_mytable.SQL>" /* Exempel i praktiken med tabellen wp_posts.frm på WordPress */ mysqlfrm --diagnostiska "C:\wampbinmysqlmysql5.6.17datameubancowp_posts.frm" > "C:\recovered_wp_posts.SQL" |
3º Metod | Med hjälp av –Server
/* Generiskt exempel */ mysqlfrm-server=rot:MittLöSenOrd@localhost-port=3311 "<källsökvägen />/mytable.frm" > "<Målsökvägen />/recovered_mytable.SQL" /* Exempel i praktiken med tabellen wp_posts.frm på WordPress */ mysqlfrm --Server=rot@localhost --hamn=3307 ""(C):\wampbinMysql\Mysql5.6.17\datummybankwp_posts.Frm" > "(C):\recovered_wp_posts.SQL" |
Använd inte MySQL-porten! Välj någon annan tillgänglig. Observera att kommandot omdirigerar utdata till en fil .sql som sparas i den angivna sökvägen (i fall, (C):).
Steg 2: Återskapa tabellen i din Databas
I en ny databas, skapa en tabell med skriptet som genereras i Steg- 1. Jag personligen installerat en ren version av WampServer och används PHPMyAdmin (http://localhost/phpmyadmin /) att skapa databasen och importera SQL-skriptet som skapades i steg 1 (recovered_wp_posts.SQL). Detta skript kommer att skapa 2 filer i katalogen i din MySQL-databas:
SUA_TABELA.frm SUA_TABELA.IDB |
I mitt fall, Dessa filer har skapats i (C):\wamp64binmysqlmysql5.7.14data<min plats>. IE, leta efter din MySQL-installation och notera att i Datum där vilja bli din data banken och den två arkivera citerat.
Steg 3: Ta bort den nya .idb-filen
Så här tar du bort den nya .idb-filen, köra följande SQL-kommando:
/* Generiskt exempel */ ALTER TABLE mytable KASTA TABLESPACE; /* Exemplo na prática com a tabela wp_posts do WordPress */ ALTER TABLE wp_posts KASSERA TABLESPACE; |
Este comando ta bort o länk entre en tabela e o tablespace (Där lagras fysiskt databasfilerna), och ta bort filen .IDB.
Steg 4: Kopiera filen .IDB gamla
Den ursprungliga .IDB-filen (de som innehåller data) måste kopieras till den plats som fick utgå i .IDB steg 3. Använd Ctrl + C och Ctrl + V eller döda dig själv med hjälp av kommandoraden.
Steg 5: Återaktivera tabellen
Den brutna länken i steg 3 behöver återställas med kommandot:
/* Generiskt exempel */ ALTER TABLE MinTabell IMPORT TABELLUTRYMME; /* Exemplo na prática com a tabela wp_posts do WordPress */ ALTER TABLE wp_posts IMPORT TABELLUTRYMME; |
Oroa dig inte om du får några varningar, Emellertid, Det kan vara allmänna fel visas följande fel:
#1808 - Schemat mismatch (Bordet har ROW_TYPE_DYNAMIC rad-format, .IBD filen har ROW_TYPE_COMPACT rad format.) |
I detta fall, Detta hände på grund av olikt än mysql 5.7.14 (NYA) skapar en standardtabell jämfört med Mysql-5.6.17 (GAMLA), SEM o ROW_FORMAT = kompakt.
Så, Se você está usando MySQL > = ao mysql5.7.14, Tudo que você precisa fazer é acrescentar ROW_FORMAT = kompakt na definição de criação da tabela.
CREATE TABLE 'wp_posts' (. . .) MOTORN=InnoDB ROW_FORMAT=kompakt |
Outros erros
Apenas para deixar registrado, Antes de obter sucesso na extração de dados göra frm, tiva alguns erros:
# Källa på localhost: ... anslutna. # Starta lekt servern på port 3304 ... FEL som försöker stoppa misslyckades lekt server. Process-id = 6648. |
FEL: Spawn server åtgärden misslyckades. Klon serverfel: Det går inte att kommunicera med nya instans. Process-id = 6648.. Att diagnostisera, kör verktyget igen och användning den --utförlighet alternativet att visa meddelanden från lekt servern och korrigera eventuella fel presenteras sedan köra verktyget igen. FRAMGÅNG: Processen med PID 6648 (barn processen med PID 7264) har avslutats. |
Traceback (senaste samtalet sist): Fil "G:\adebuildsb_0-19921351-1470074463.97Python-2.7.6-Windows-x86-64bitlibsite-packagescx_FreezeinitscriptsConsole.py", linjen 27, i <modul> Fil "scripts\mysqlfrm.py", linjen 422, i <modul> Fil ".\mysql\utilities\command\read_frm.py", linjen 439, i read_frm_files Fil ".\mysql\utilities\command\read_frm.py", linjen 166, i _spawn_server Fil ".\mysql\utilities\command\serverclone.py", linjen 180, i clone_server Fil ".\mysql\utilities\common\tools.py", linjen 273, i get_mysqld_version IOError: [Errno 13] Åtkomst nekad: 'version_check' |
I det specifika fallet med WordPress, du behöver ta bort skriptet som genererade SQL genereras. frm, Alla angivelser standard ‘0000-00-00 00:00:00’, annars, kommer att fånga felet:
#1067 - Standardvärde (standard) ej giltig för 'comment_date' |
Det är det!
Teckensnitt
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
Mycket god man! Du räddade mig! Tack för att dela lösningen!
Vad du gör när du ser följande felmeddelande: #1815 – Internt fel. Kan inte återställa LSNs i tabell “min plats”.”myTable”: Data struktur korruption.
Jag kan köra skären av data manuellt? Hur du gör detta?
Sedan redan tack.
Jag vill bara ge dig en stor F ** king tacka YOUUUUUUU. du bevarat min liv dude!!!!!
Hej Taylor,
Hur löste du detta fel:
FEL: Spawn server åtgärden misslyckades. Klon serverfel: Det går inte att kommunicera med ny instans. Process-id = 6648.. Att diagnostisera, kör verktyget igen och använda den –utförlighet alternativet att visa meddelanden från lekt servern och korrigera eventuella fel presenteras sedan köra verktyget igen.
FRAMGÅNG: Processen med PID 6648 (barn processen med PID 7264) har avslutats.
Jag fortsätter att få samma meddelande och jag don t vet hur ´ ska lösa det..
Tack
Hej, Du kan försöka använda den första metoden (https://recovery.twindb.com/) som beskrivits ovan. Använd inte Mysql port och ta bort från din SQL någon frm 'Standard' 0000-00-00 00:00:00’.
Kille, Jag kommentera brukar inte publikationer, men detta har jag att kommentera!
Grattis räddade mig!
Tack så mycket!.
Stor post kompis.
Självklart, koncis, fullständig och tillförlitlig.
Hjälpte mycket.
Salut tu viens de mig sauver la vie. Grand merci.
Kille… gratulationer…
Det fungerade för mig!
Mycket bra tutorial….
Hjälpte mycket. hade mycket viktiga data och återfanns. OBG!
Grattis Taylor, men didaktiska omöjligt!! du är samma kille!
kram och tack för att dela din upplevelse!
Det fungerade. Tack!
dude tack så mycket för din hjälp. VLW vän
God eftermiddag.
Jag kommer i namn företaget där jag jobbar tack för tipset var mycket hjälpsam och kommer att antas denna metod för återvinning av skadad databas.
Väldigt bra, Grattis.
Grattis till handledning, muito útil e completo! Mig ajudou!
Salvou hein
Vilket fantastiskt tips, var orolig att han skulle förlora allt… Du sparade ett månadslångt jobb… Tack!!!!
Morfar, ville bara tacka dig för att du delar med dig av dina kunskaper på ett organiserat och tydligt sätt! Hjälpte mig mycket! Tack, Samma!
Hej,
Med mig har jag nämnt följande fel i steget 5:
FEL 1812 (HY000): Tablespace saknas för tabell 'bdTest'.'tblMov'.
vet hur man berättar för mig hur man löser detta fel?
Tacksam
Hola, Jag har ett problem, det visar sig att jag avinstallerade xampp eftersom apache inte fungerade för mig, tydligt installerat om den och vad som lämnade mig från den tidigare mappen i xampp, i data, solo me quedaron las carpetas que llevan los nombres de las bases de datos que tenía antes allí, y solo tengo los archivos .frm y .ibd, la verdad es que no logre tillämpa bien el handledning, mig podrias samarbeta porfavoooorrrr
Snälla, Jag följde din handledning men i slutändan min presenterade ett annat fel:
#1808 – Schemat mismatch (Förväntad FPS_SPACE_FLAGS=0x0, .ibd-filen innehåller 0x21.)
Jag såg att från en mysql till en annan kan det ha olika tabell rad format som orsakar detta fel som ska visas, emellertid skulle det inte har en långt att konvertera formatera av det importerade bordlägger till samma som används i mysql i ifrågasätter, så att den inte har denna konflikt? Om det finns en sql-kommando som gör detta och gör importen vänligen om du kan skriva det jag tackar er eftersom jag inte förstår mycket.. Snälla hjälp mig och jag försöker att återvinna en brådskande plats… versionen av min mysql är :
Serverversion: 10.1.25-Mariadb