Ghnóthú táblaí MySQL nuair a bhíonn ach an Frm agus comhaid .ibd fáil

conas a réiteach “MySQL Earráid #1146 - Ní Tábla ann” de bharr na comhaid ag gluaiseacht .idb (InnoDB) díreach idir eolairí (tablespace).

logo_mysql

fadhb

Go leor de na fadhbanna atá againn go bhfuil fadhbanna a chruthú dúinn. Bhí mé ag ullmhú ach an suíomh gréasáin ag baint úsáide as WordPress agus shíl: den sórt sin a fheiceáil conas a oibríonn sé seo i PHP 7? OK, mar mo WampServer úsáidtear PHP 5.6, ansin bhí orm “sásta” smaoineamh a uasghrádú an WampServer 2.5 (Apache-2.4.9, MySQL-5.6.17, Php5.5.12) do WampServer 3.0.6 (Apache2.4.23, Mysql5.7.14, Php5.6.25 e Php 7.0.10).

soiléir, Thosaigh mé le cúltaca, ach bhí mo misstep mór a roghnú gan a onnmhairiú ar an SQL Suíomh sórt, Ina áit sin, ach rinne cóip de na comhaid MySQL (MySQL / Sonraí) agus cur i bhfeidhm (www / láthair). Bhí mé cinnte go mbeadh sé ag obair, mar a rinneadh cheana.

Tar éis a shuiteáil an WampServer nua le PHP 7, Chuir mé na comhaid cúltaca MySQL agus cur i bhfeidhm ann ar ais, ach amháin nuair a bhí mé ag tástáil an bhrabhsálaí, Suíomh Ní chuma, ach an scáileán a shuiteáil WordPress amhail is dá mba ar an suíomh gréasáin nua. glóthach! PhpMyAdmin Oscail a fheiceáil má bhí an bunachar sonraí OK agus chonaic sé go, in ainneoin a bheith liostaithe ar an mbunachar sonraí, nuair a chliceáil ar an tábla chun amharc ar na sonraí an chuma ar an teachtaireacht earráide seo a leanas:

  MySQL earráid #1146 - Tábla <table_name> gan a bheith ann

Bhí mé ag cuardach agus fuair mé amach go ach is féidir leat a chóipeáil nó bogadh na comhaid go díreach chuig MySQL MySQL eolaire eile má tá na comhaid ar an MyISAM chineál, iad siúd a bhfuil síneadh Frm .MYD .MYI. Níl a fhios agam i ndáiríre cad a tharla, ach mo bunachar sonraí le feiceáil mar InnoDB (.frm e .idb). ar an drochuair, ach amháin tar éis a chonaic an teagmhas na doiciméid MySQL rabhadh cheana féin:

  Ní féidir leat gluaiseacht faoi shaoirse .Comhaid IBD idir eolairí bunachar mar is féidir leat le comhaid tábla MyISAM. 
  Áirítear ar an sainmhíniú tábla atá stóráilte sa tablespace InnoDB roinnte an t-ainm bunachar. 
  Na IDs idirbhirt agus logáil Difriúil líon seicheamh atá stóráilte sna comhaid tablespace freisin idir bunachair.

réiteach

Fuair ​​mé a dhéanamh ar roinnt réitigh shimplí, ach beidh mé ag cur síos anseo ar an ceann a d'oibrigh i ndáiríre dom, cé is cosúil sé i bhfad níos casta, le fáil in Iar “tábla athbhunú(s) i mbunachar sonraí MySQL nuair atá frm nó IBD comhaid ar fáil ach amháin“.

roimh, mar sin féin, ar mhodh eolais, is fiú cuimhneamh go bhfuil i gcomparáid le InnoDB, Coinníonn MySQL a struchtúr i gcomhaid Frm agus sonraí i .ibd. teoiric Enough, ligeann dul síos go dtí!

céim 1: Re-chruthú ar an struchtúr an Frm

mar a dúirt mé, Tá frm an struchtúr tábla. An Chéad ní mór dúinn a ghnóthú go struchtúr agus ansin tar éis sonraí tóir. Is féidir leat é a dhéanamh 3 modhanna éagsúla cur síos orthu thíos, ach roimh, lig dom a insint duit rud éigin faoi an “MySQL Fóntais”.

MySQL Fóntais | mysqlfrm

Mura bhfuil tú i gceist a bhaint as an modh atá beartaithe 1 (Líne) ansin is gá duit a bhaint as an uirlis “mysqlfrm” ar fáil ag “MySQL Fóntais“.

Beidh an uirlis a bhaint ar an struchtúr sonraí agus a ghiniúint an script SQL do chruthú tábla. Chun seo a, íoslódáil “MySQL Fóntais” (algo como MySQL-fóntais-1.6.4-winx64.msi) agus é a shuiteáil.

Oscail an console (Ordú / DE) agus úsáid orduithe CD a bhogadh leis an eolaire suiteáil réamhshocraithe (rud éigin cosúil le C:\Program Files\MySQL\MySQL Utilities 1.6\). Tabhair faoi deara go laistigh den eolaire bhfuil an inrite mysqlfrm.exe.

  cd "C:\Program Files\MySQL\MySQL Utilities 1.6"

Roghnaigh ach ceann amháin de na modhanna seo thíos a bhaint as an struchtúr dtábla atá leagtha amach in Frm:

1ú modh | Líne

1. Tabhair cuairt ar an suíomh gréasáin https://recovery.twindb.com/;
2. Cliceáil ar an roghchlár “Ghnóthú Struchtúr” agus ansin i “ó chomhad Frm“;
3. Cliceáil ar an gcnaipe “Brabhsálaí…” agus roghnaigh do chomhad Frm; agus
4. Cliceáil ar an gcnaipe “Upload” agus gur dealraitheach script a chruthú tábla ar an scáileán.

Is féidir leat a sheoladh Frm il ag an am céanna a chruthú script amháin le gach táblaí. Díreach chun ligean duit a chruthú zip lena Frm go léir roimh “Brabhsálaí / Upload”.

2ú modh | ag baint úsáide as –diagnóiseacha

/* sampla cineálach */
   mysqlfrm -diagnostic "<Foinse / cosán>/mytable.frm" > "<ceann scríbe / cosán / recovered_mytable.sql>"
 
/* cleachtas mar shampla, le WordPress wp_posts.frm tábla */
   mysqlfrm --diagnóiseacha "C:\wamp\bin\mysql\mysql5.6.17\data\meubanco\wp_posts.frm" > "C:\recovered_wp_posts.sql"

3ú modh | ag baint úsáide as –freastalaí

/* sampla cineálach */
  mysqlfrm -server=root:mypassword@localhost -port=3311 "<Foinse / cosán>/mytable.frm" > "<ceann scríbe / cosán>/recovered_mytable.sql"
 
/* cleachtas mar shampla, le WordPress wp_posts.frm tábla */
  mysqlfrm --freastalaí=root@localhost --port=3307 ""C:\wamp\bin\MySQL\mysql5.6.17\data\meubanco\wp_posts.frm" > "C:\recovered_wp_posts.SQL"

Ná húsáid an gcalafort MySQL! Roghnaigh aon eile atá ar fáil. Tabhair faoi deara go athsheolaidh an t-ordú an t-aschur chun an comhad .sql atá shábháil sa cosán sonraithe (gcás ar bith, C:).

céim 2: Ath-chruthú ar an tábla i do bhunachar sonraí

I mbunachar sonraí nua, chruthú tábla leis an script a ghintear i gCéim 1. Suiteáilte mé go pearsanta ar leagan glan de WampServer agus a úsáidtear phpMyAdmin (http://localhost / phpMyAdmin /) a chruthú ar an mbunachar sonraí agus a allmhairiú an script SQL cruthaíodh i chéim 1 (recovered_wp_posts.sql). Beidh an script a chruthú 2 comhaid sa eolaire de do bhunachar sonraí MySQL:

  SUA_TABELA.frm
  SUA_TABELA.IDB

I mo chás, Bhí na comhaid a cruthaíodh i C:\wamp64\bin\mysql\mysql5.7.14\data\<meubanco>. i bhfocail eile, iarracht a fháil do shuiteáil MySQL agus faoi deara go bhfuil an t-eolaire sonraí beidh bunachar sonraí agus an dhá chomhad a luaitear.

céim 3: Bain an comhad .idb nua

A bhaint as an comhad .idb nua, reáchtáil an ordú seo a leanas SQL:

/* sampla cineálach */
  Athrú TÁBLA mytable tablespace Caith Amach;
 
/* cleachtas mar shampla, le wp_posts tábla WordPress */
  ALTER wp_posts TÁBLA Caith Amach tablespace;

Baineann an ordaithe an nasc idir an tábla agus an spás tábla (Sa chás go bhfuil siad á stóráil go fisiciúil na comhaid bunachar), agus bain an comhad .idb.

céim 4: Cóipeáil an comhad .idb sean

An .idb comhaid bunaidh (ina bhfuil sonraí) Ní mór duit a bheith cóip a chur chuig an áit .idb Scriosadh i gCéim 3. Úsáid Ctrl + C agus Ctrl + V nó fiú a mharú na n-orduithe.

céim 5: Athghníomhachtú an tábla

An nasc briste i gCéim 3 Ní mór duit a chur ar ais leis an ordú seo a leanas:

/* sampla cineálach */
  Athrú TÁBLA mytable tablespace ALLMHAIRÍ;
 
/* cleachtas mar shampla, le wp_posts tábla WordPress */
  ALTER TÁBLA wp_posts tablespace ALLMHAIRÍ;

Ná bíodh imní ort má fhaigheann tú ar roinnt rabhaidh, mar sin féin, D'fhéadfadh a bheith a thabhairt miondealú ginearálta léiríonn an earráid seo a leanas:

  #1808 - mismatch Scéimre (Tá Tábla format chéile ROW_TYPE_DYNAMIC, .Tá comhad IBD formáid a chéile ROW_TYPE_COMPACT.)

sa chás seo, tharla sé seo mar gheall ar an bhealach difriúil a mysql5.7.14 (NEW) Cruthaíonn an tábla réamhshocraithe maidir leis an MySQL-6.5.17 (OLD), sem o ROW_FORMAT = dhlúth.

ansin, má tá tú ag baint úsáide as MySQL> = an mysql5.7.14, go léir is gá duit a dhéanamh ná a chur ROW_FORMAT = dlúth i sainmhíniú chruthú tábla.

  CREATE TÁBLA `wp_posts` (. . .) ENGINE=InnoDB ROW_FORMAT=dhlúth

earráidí eile

Díreach don taifead, sula dhiaidh sin i eastóscadh sonraí Frm, Bhí mé roinnt botúin:

  # Foinse ar localhost: ... ceangailte.
  # Ag tosú leis an bhfreastalaí spawned ar chalafoirt 3304 ... ERROR Ag iarraidh chun stop a chur Theip freastalaí spawned.  Próiseas id = 6648.
  ERROR: Theip ar oibríocht freastalaí sceith. Earráid freastalaí Clón: Níféidir cumarsáid a dhéanamh le nua Mar shampla. próiseas id = 6648.. a dhiagnóiseadh, reáchtáil ar an fóntais arís agus úsáid an --Rogha verbosity chun féachaint ar na teachtaireachtaí ón bhfreastalaí spawned agus a cheartú aon earráidí i láthair ansin rith an fóntais arís.
  RATH: An próiseas le PID 6648 (próiseas leanbh PID 7264) Tá deireadh.
Traceback (an chuid is mó glaoch déanaí deireanach):
  Comhad "G:\ade\build\sb_0-19921351-1470074463.97\Python-2.7.6-windows-x86-64bit\lib\site-packages\cx_Freeze\initscripts\Console.py", líne 27, i <modúl>
  Comhad "scripts\mysqlfrm.py", líne 422, i <modúl>
  Comhad ".\mysql\utilities\command\read_frm.py", líne 439, i read_frm_files
  Comhad ".\mysql\utilities\command\read_frm.py", líne 166, i _spawn_server
  Comhad ".\mysql\utilities\command\serverclone.py", líne 180, i clone_server
  Comhad ".\mysql\utilities\common\tools.py", líne 273, i get_mysqld_version
IOError: [Errno 13] Cead diúltaithe: 'Version_check'

I gcás sonrach na WordPress, ní mór duit a bhaint as an script a ghintear an t-SQL a fuarthas i Frm, gach iontráil mar 'default ‘0000-00-00 00:00:00', ar shlí eile, Beidh teacht an earráid:

  #1067 - luach réamhshocraithe (réamhshocraithe) neamhbhailí do 'comment_date'

go!

foinsí

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

Líon iomlán na n-amas: 21391

12 léirmheas “Ghnóthú táblaí MySQL nuair a bhíonn ach an Frm agus comhaid .ibd fáil

  1. Rodrigo dúirt:

    Céard atá le déanamh nuair a fheiceann tú an teachtaireacht earráide seo a leanas: #1815 – earráid inmheánach. Ní féidir athshocrú LSNs i dtábla “meubanco”.”minhatabela”: éilliú struchtúr sonraí.
    An féidir a dhéanamh ar na sonraí de láimh cuireann? Conas a dhéanamh?
    Gabhaim buíochas leat.

  2. Cristian U dúirt:

    Dia duit Taylor,

    Conas a fuair tú a réiteach an earráid seo:
    ERROR: Theip ar oibríocht freastalaí sceith. Earráid freastalaí Clón: Ní féidir dul i cumarsáid a dhéanamh le ásc nua. Próiseas id = 6648.. a dhiagnóiseadh, reáchtáil ar an fóntais arís agus úsáid an –Rogha verbosity chun féachaint ar na teachtaireachtaí ón bhfreastalaí spawned agus a cheartú aon earráidí i láthair ansin rith an fóntais arís.
    RATH: An próiseas le PID 6648 (próiseas leanbh PID 7264) Tá deireadh.

    Coinneoidh mé ag fáil an teachtaireacht chéanna agus dont a fhios agam conas a réiteach é.

    Go raibh maith agat

Leave a Reply

Ní thabharfar do sheoladh r-phoist a fhoilsiú. Réimsí riachtanacha atá marcáilte le *