Bọsipọ MySQL tabili nigbati nikan ni .frm ati .ibd awọn faili wa o si wa

Bawo ni lati yanju “MySQL aṣiṣe #1146 - Table ko ni tẹlẹ” ṣẹlẹ nipasẹ gbigbe awọn faili .idb (InnoDB) taara laarin awọn ilana (tablespace).

logo_mysql

isoro

Ọpọlọpọ awọn ti awọn isoro ti a ti wa ni isoro ti a ṣẹda. Mo ti o kan mura a aaye ayelujara nipa lilo ti anpe ni ati ero: iru wo bi o ti ṣiṣẹ ninu PHP 7? ok, bi mi WampServer lo PHP 5.6, ki ni mo ni lati “happy” agutan lati igbesoke awọn WampServer 2.5 (Afun-2.4.9, MySQL-5.6.17, Php5.5.12) fun WampServer 3.0.6 (Apache2.4.23, Mysql5.7.14, Php5.6.25 ati Php 7.0.10).

ko, Mo ti bere nipa afẹyinti, ṣugbọn mi nla misstep ti a yan ko lati okeere awọn SQL iru Aye, dipo ti o, o kan ṣe a daakọ ti MySQL awọn faili (MySQL / data) ati awọn ohun elo (www / ojula). Mo ti wà igboya ti o yoo ṣiṣẹ, bi ki o to.

Lẹhin fifi titun WampServer pẹlu PHP 7, Mo ti fi awọn MySQL afẹyinti awọn faili ati awọn ohun elo nibẹ pada, nikan nigbati mo idanwo awọn kiri, ko han Aaye, ṣugbọn awọn ti anpe ni fifi sori iboju bi o ba ti wà a titun aaye ayelujara. jelly! Open phpMyAdmin lati ri ti o ba ti database wà Ok ki o si ri pe, pelu akojọ database, nigbati mo te lori tabili lati wo awọn data han awọn wọnyi ni aṣiṣe ifiranṣẹ:

  MySQL aṣiṣe #1146 - Table <table_name> ko ni tẹlẹ

Mo ti a ti wiwa ati ki o Mo ti se awari wipe o le nikan daakọ tabi gbe awọn MySQL awọn faili taara si miiran MySQL liana ti o ba ti awọn faili ni o wa ni iru MyISAM, awon pẹlu itẹsiwaju .frm .MYD .MYI. Emi ko gan mọ ohun to sele, ṣugbọn mi database han bi InnoDB (.FRM e .idb). laanu, nikan lẹhin awọn iṣẹlẹ ri MySQL iwe tẹlẹ ti kìlọ:

  O ko le larọwọto gbe .ibd awọn faili laarin database ilana bi o le pẹlu MyISAM tabili awọn faili. 
  Awọn tabili definition ti fipamọ ni awọn InnoDB pín tablespace pẹlu awọn orukọ database. 
  Awọn idunadura ID ati wọle ọkọọkan awọn nọmba ti o ti fipamọ ni awọn tablespace faili tun yato laarin infomesonu.

ojutu

Mo ni lati ri diẹ ninu awọn solusan, ṣugbọn emi o se apejuwe nibi awọn ọkan ti o gan sise fun mi, biotilejepe o dabi eka sii, Fí ko ri “pada sipo tabili(s) ni MySQL database nigba ti FRM tabi ibd awọn faili wa o si wa nikan“.

ṣaaju ki o to, sibẹsibẹ, nipa ọna ti imo, o jẹ tọ leti wipe akawe si InnoDB, MySQL ntọju awọn oniwe-be ni .frm awọn faili ati data ni .ibd. to yii, jẹ ki gba si isalẹ lati!

igbese 1: Recreate awọn be ti .frm

bi mo ti wi, awọn .frm ni awọn be ti tabili rẹ. First a nilo lati bọsipọ ti be ati ki o lẹhin gbajumo data. O le se o 3 Orisirisi awọn ọna ti ṣàpèjúwe ni isalẹ, diẹ ṣaaju ki o to, jẹ ki mi so fun o nkankan nipa “MySQL igbesi”.

MySQL igbesi | mysqlfrm

Ti o ko ba lati lo awọn dabaa ọna 1 (online) ki o si nilo lati lo awọn ọpa “mysqlfrm” pese nipa “MySQL igbesi“.

Yi ọpa yoo jade awọn data be ati ina SQL akosile tabili ẹda. fun yi, download “MySQL igbesi” (nkankan bi MySQL-igbesi-1.6.4-winx64.msi) ki o si fi-o.

Ṣii console (pipaṣẹ / OF) ati ki o lo CD aṣẹ lati gbe awọn aiyipada fifi sori liana (nkankan bi C:\Program Files MySQL MySQL Utilities 1.6\). Akiyesi pe laarin ti liana ni awọn executable mysqlfrm.exe.

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

Yan nikan ni ọkan ninu awọn ọna isalẹ lati jade awọn be ti a tabili ti o wa ninu .frm:

1° Ọna | online

1. Lọ si awọn aaye ayelujara https://recovery.twindb.com/;
2. Tẹ ko si akojọ “bọsipọ Be” ati lẹhinna ninu “lati .frm faili“;
3. Tẹ awọn bọtini “kiri…” ki o si yan rẹ .frm file; e
4. Tẹ awọn bọtini “Po” ati tabili ẹda akosile han loju iboju.

O le fi ọpọ .frm awọn faili ni ẹẹkan ṣiṣẹda kan nikan akosile pẹlu gbogbo awọn tabili. Kan ti o ṣẹda a .zip pẹlu gbogbo awọn oniwe .frm ṣaaju ki o to “Kiri / Po”.

2° Ọna | lilo –aisan

/* apẹẹrẹ jeneriki */
   mysqlfrm -diagnostic "<orisun / ona>/mytable.frm" > "<nlo / ona / recovered_mytable.sql>"
 
/* Apere ni asa pẹlu ti anpe ni wp_posts.frm tabili */
   mysqlfrm --aisan "C:\wamp  bin  MySQL  mysql5.6.17  data  meubanco  wp_posts.frm" > "C:\recovered_wp_posts.sql"

3° Ọna | lilo –server

/* apẹẹrẹ jeneriki */
  mysqlfrm -server=root:mypassword@localhost -port=3311 "<orisun / ona>/mytable.frm" > "<nlo / ona>/recovered_mytable.sql"
 
/* Apere ni asa pẹlu ti anpe ni wp_posts.frm tabili */
  mysqlfrm --server=root@localhost --ibudo=3307 ""C:\wamp  bin MySQL\mysqld.6.17\data\meubanco\wp_posts.FRM" > "C:\recovered_wp_posts.SQL"

Ma ṣe lo MySQL ibudo! Yan eyikeyi miiran wa. Akiyesi pe awọn pipaṣẹ àtúnjúwe awọn ti o wu lati kan .sql faili ti wa ni fipamọ ni awọn pàtó kan ona (ko si irú, C:).

igbese 2: Recreate awọn tabili ninu rẹ database

Ni titun kan database, ṣẹda a tabili pẹlu awọn akosile ti ipilẹṣẹ ni Igbese 1. Mo ti tikalararẹ sori ẹrọ kan ti o mọ ti ikede WampServer ati ki o lo phpMyAdmin (http://localhost / phpmyadmin /) lati ṣẹda awọn database ki o si gbe awọn SQL akosile da ni igbese 1 (recovered_wp_posts.sql). Yi akosile yoo ṣẹda 2 awọn faili ninu awọn liana ti rẹ MySQL database:

  SUA_TABELA.FRM
  SUA_TABELA.idb

Ninu mi irú, wọnyi awọn faili won da ni C:\wamp64 bin MySQL mysql5.7.14 data <MYDATABASE.GDB>. ninu awọn ọrọ miiran, wa rẹ MySQL fifi sori ki o si akiyesi pe awọn liana data nibẹ ni a database ati awọn meji awọn faili ti a npè ni.

igbese 3: Yọ titun .idb faili

Lati yọ awọn titun .idb faili, ṣiṣe awọn wọnyi SQL pipaṣẹ:

/* apẹẹrẹ jeneriki */
  Alter tabili mytable àyípadà TABLESPACE;
 
/* Apere ni asa pẹlu ti anpe ni wp_posts tabili */
  Paarọ tabili wp_posts àyípadà TABLESPACE;

Este comando yọ o ọna asopọ entre a tabela e o tablespace (Ibi ti won ti wa ni ara ti o ti fipamọ awọn database awọn faili), ki o si yọ awọn faili .idb.

igbese 4: Da awọn atijọ .idb faili

Awọn faili atilẹba .idb (eyi ti o ni data) nilo lati wa ni dakọ si ibi ti .idb ti paarẹ ni Igbese 3. Lo Konturolu + C ati Konturolu + V tabi paapa pa awọn pipaṣẹ ila.

igbese 5: Reactivate awọn tabili

Awọn baje asopọ ni Igbese 3 O nilo lati wa ni pada pẹlu awọn wọnyi àṣẹ:

/* apẹẹrẹ jeneriki */
  Alter tabili mytable wọle TABLESPACE;
 
/* Apere ni asa pẹlu ti anpe ni wp_posts tabili */
  Paarọ tabili wp_posts wọle TABLESPACE;

Maa ṣe dààmú ti o ba ti o gba diẹ ninu awọn ikilo, sibẹsibẹ, o le wa lati fun gbogbo didenukole fifi awọn wọnyi ni aṣiṣe:

  #1808 - aworan mismatch (Table ni o ni ROW_TYPE_DYNAMIC kana kika, .ibd faili ni o ni ROW_TYPE_COMPACT kana kika.)

ninu apere yi, yi sele nitori awọn ti o yatọ ọna ti awọn mysql5.7.14 (NEW) ṣẹda awọn aiyipada tabili ni ibatan si awọn MySQL-06/05/17 (Antique), SEM o ROW_FORMAT = iwapọ.

ki o si, ti o ba ti wa ni lilo MySQL> = ni mysql5.7.14, gbogbo awọn ti o nilo lati se ni fi ROW_FORMAT = iwapọ ni tabili ẹda definition.

  Ṣẹda tabili `wp_posts` (. . .) ENGINE=InnoDB ROW_FORMAT=iwapọ

miiran aṣiṣe

Kan fun awọn gba awọn, ṣaaju ki o to lásán ni .frm data isediwon, Mo ní diẹ ninu awọn asise:

  # Orisun on localhost: ... ti a ti sopọ.
  # O bere ni spawned server on ibudo 3304 ... Aṣiṣe Pinnu lati da kuna spawned server.  Ilana id = 6648.
  aṣiṣe: Spawn server isẹ kuna. Oniye server aṣiṣe: Lagbara lati ṣe ibasọrọ pẹlu awọn titun apeere. ilana id = 6648.. lati ṣe iwadii, ṣiṣe awọn IwUlO lẹẹkansi ati lilo awọn --verbosity aṣayan lati wo awọn ifiranṣẹ lati awọn spawned server ki o si se atunse eyikeyi awọn aṣiṣe gbekalẹ ki o si ṣiṣe awọn IwUlO lẹẹkansi.
  aseyori: Awọn ilana pẹlu PID 6648 (ọmọ ilana ti PID 7264) ti a ti fopin si.
Traceback (julọ ​​to šẹšẹ ipe kẹhin):
  faili "G:\ade\build\sb_0-19921351-1470074463.97\Python-2.7.6-windows-x86-64bit\lib\site-packages\cx_Freeze\initscripts\Console.py", ila 27, ni <module>
  faili "scripts\mysqlfrm.py", ila 422, ni <module>
  faili ".\mysql\utilities\command\read_frm.py", ila 439, ni read_frm_files
  faili ".\mysql\utilities\command\read_frm.py", ila 166, ni _spawn_server
  faili ".\mysql\utilities\command\serverclone.py", ila 180, ni clone_server
  faili ".\mysql\utilities\common\tools.py", ila 273, ni get_mysqld_version
IOError: [Errno 13] Ti kọ iyọọda: 'Version_check'

Ni awọn kan pato nla ti anpe ni, o nilo lati yọ awọn akosile ti ipilẹṣẹ awọn SQL gba ni .frm, gbogbo titẹ sii bi 'aiyipada ‘0000-00-00 00:00:00', bibẹkọ ti, yoo yẹ awọn aṣiṣe:

  #1067 - aiyipada iye (aiyipada) invalid fun 'comment_date'

ti!

awọn orisun

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

lapapọ accesses: 21441

12 agbeyewo “Bọsipọ MySQL tabili nigbati nikan ni .frm ati .ibd awọn faili wa o si wa

  1. Rodrigo wi:

    Ohun ti lati se nigba ti o ba wo awọn wọnyi ni aṣiṣe ifiranṣẹ: #1815 – ti abẹnu aṣiṣe. Ko le tun LSNs ni tabili “MYDATABASE.GDB”.”minhatabela”: Data be ibaje.
    Ti wa ni o ṣee ṣe lati ṣe awọn data ọwọ awọn ifibọ? Bawo ni lati se ti o?
    Mo dúpẹ lọwọ.

  2. Cristian U wi:

    Hi Taylor,

    How did you solve this error:
    aṣiṣe: Spawn server isẹ kuna. Oniye server aṣiṣe: Lagbara lati ṣe ibasọrọ pẹlu awọn titun apeere. Ilana id = 6648.. lati ṣe iwadii, run the utility again and use the –verbosity aṣayan lati wo awọn ifiranṣẹ lati awọn spawned server ki o si se atunse eyikeyi awọn aṣiṣe gbekalẹ ki o si ṣiṣe awọn IwUlO lẹẹkansi.
    aseyori: Awọn ilana pẹlu PID 6648 (ọmọ ilana ti PID 7264) ti a ti fopin si.

    I keep receiving the same message and I don´t know how to solve it.

    Thanks

  3. Reginaldo Luiz de Freitas wi:

    Parabéns Taylor, ṣugbọn didactic soro!! ti o ba wa kanna eniyan!

    famọra ati ọpẹ fun pínpín rẹ iriri!

Fi kan Fesi

Adirẹsi imeeli rẹ yoo ko le ṣe atejade. O beere aaye ti wa ni ti samisi pẹlu *