Яңадан таблицалар MySQL вакытта гына файллар .frm .ibd билгеле

Ничек хәл итәргә “MySQL Error #1146 – Table doesn't exist” вызвано перемещать файллар .idb (InnoDB) турыдан-туры арасында каталогами (tablespace).

logo_mysql

Проблема

Күп кенә проблемалар, бездә проблемалар бар, алар без булдырабыз. Мин әле генә тәмамлый әзерлек Сайты ярдәмендә WordPress һәм мин уйлады,: нәрсә күрергә, ничек моны эшли PHP 7? Ок, ничек минем WampServer йөртеп, PHP 5.6, шуңа күрә мин “шат” идея ясарга яңарту WampServer 2.5 (Apache 2.4.9, Mysql 5.6.17, Php5.5.12) өчен WampServer 3.0.6 (Apache2.4.23, Mysql5.7.14, Php5.6.25 һәм Php 7.0.10).

Әлбәттә, мин башлану белән копирования, тик минем зур vacilo иде сайларга түгел экспортировать " SQL мондый Сайт, моның урынына, яңа гына ясаган файлларның күчермәсен MySQL (mysql/data) һәм куллану (www/site). Иде, дип ышанам эшләячәк, ничек башка тапкыр.

Соң урнаштыру, яңа WampServer белән PHP 7, поместил файллар резерв копирования MySQL һәм кушымталар шунда кире, генә, мин карлыгач, тикшерү өчен татарстан браузере, күренми Сайтында, ләкин әйе, экранда урнаштыру WordPress кебек булса, яңа Сайт. Замерз! Ачарга PHPMyAdmin тикшерү өчен, әгәр базасы иде Ок, мин күрдем, дип,, карамастан исемлегендә базасы, кайчан нажимал на вершине таблицадан карау өчен мәгълүматлар ква түбәндәгеләрне хәбәр турында ошибке:

  MySQL Error #1146 – Table <TABLE_NAME> doesn't exist

Мин эзләгән һәм мин берәүдә, бу мөмкин түгел скопировать яки переместить файллар MySQL турыдан-туры башка каталог MySQL, әгәр файллар ия тибы MyISAM, кешеләр белән расширением .frm .МУО .MYI. Мин белмим, дип шунда иде, әмма минем мәгълүматлар базасы барлыкка ничек InnoDB (.frm .idb). Кызганычка каршы, соң гына булган, мин күрдем, дип, документларын MySQL инде alertava:

  You cannot move freely .ibd файллар арасында каталогами базасында ничек аласыз белән таблицалар myisam файллар. 
  Билгеләмә таблицалар, алар саклана innodb гомуми табличная өлкәсе исемен үз эченә алган мәгълүмат базасын. 
  Идентификаторы транзакций һәм журнал порядковые номерлары, сөякләренең аерым файлах табличного киңлеген, шулай ук, аерылып арасында базами мәгълүматлар.

Карар

Җил шул algumas вер soluções простейших, Мась син смеешь descrever акви бердәм кы realmente funcionou пункты МИМ, apesar де parecer бэм маис complexa, encontrada бер пост “Торгызу таблицалар(белән) мәгълүматлар базасында MySQL, кайчан frm яки ibd файллар гына билгеле“.

Антес, әмма, ә исеме-де кадәр ориенте, Вейл, - дип искә алды ке аларның relação АҖ типо innodb", MySQL саклый, үз структурасын бу файлах .frm һәм сезнең мәгълүматлар .ibd. Бераз теориясе, әйдәгез, приступим эшкә!

Адым 1: Воссоздайте структурасына файлларның .frm

Ничек диде, .frm үз эченә алган структурасын үз таблицалар. Сперва кирәк, торгызу өчен әлеге структурага килгәндә, соң тутыру мәгълүматлар. Сез моны 3 төрле ысуллар, описанные түбәнрәк, әмма алдында, рөхсәт итегез, миңа сөйләргә кайбер турында “MySQL Utilities”.

MySQL Utilities | mysqlfrm

Әгәр сез теләсәгез кулланырга 1 нче Ысулын тәкъдим иткән (Онлайн) ягъни сезгә кирәк булачак кулланырга чарасы “mysqlfrm” тәкъдим ителгән “MySQL Utilities“.

Бу коралы булачак кабул итеп алырга структурасын әлеге һәм генерировать SQL-скрипт булдыру өчен таблицалар. Пункты исто, скачать “MySQL Utilities” (нәрсә кебек mysql-utilities-1.6.4-winx64.msi) һәм аның установите.

Откройте консоль (Command / БЕРСЕ) һәм используйте командасын CD өчен күчәргә әгәр каталогы урнаштыру буенча шаблон (нәрсә кебек C:\Program FilesMySQLMySQL Utilities 1.6\). Игътибар итегез, эчендә әлеге директории бар исполняемый файл mysqlfrm.exe.

  cd "C:\Program FilesMySQLMySQL Utilities 1.6"

Сайлагыз берсе генә ысулларын өчен кабул итеп алырга структурасын үз таблицалар, содержащейся бу файлах .frm:

1Нче Методы | Онлайн

1. Посетите веб-сайт https://recovery.twindb.com/;
2. Сайлагыз менюга “Recover Structure” һәм ул чакта “from .frm file“;
3. Төймәгә басыгыз “Браузер…” һәм сайлагыз сезнең файл .frm; һәм
4. Төймәгә басыгыз “Загрузить” һәм скрипт булдыру таблицалар булачак отображаться экранда.

Җибәрергә мөмкин күберәк .frm бер үк вакытта булдырып, уникаль сценарий, барлык таблицами. Сез гади создайте .zip белән барысы да сезнең .frm алдында “Браузере/Загрузить”.

2Нче Методы | Ярдәмендә –diagnostic

/* Универсаль үрнәге */
   mysqlfrm –diagnostic "<source/path>/mytable.frm" > "<destination/path/recovered_mytable.sql>"
 
/* Мәсәлән, практикада белән таблицей wp_posts.frm WordPress */
   mysqlfrm --diagnostic "C:\wampbinmysqlmysql mysql5.6.17datameubancowp_posts.frm" > "C:\recovered_wp_posts.sql"

3Нче Методы | Ярдәмендә –server

/* Универсаль үрнәге */
  mysqlfrm –server=root:mypassword@localhost –порт=3311 "<source/path>/mytable.frm" > "<destination/path>/recovered_mytable.sql"
 
/* Мәсәлән, практикада белән таблицей wp_posts.frm WordPress */
  mysqlfrm --server=root@localhost --port=3307 ""C:\wampbinmysql\mysql5.6.17\data\meubanco\wp_posts.frm" > "C:\recovered_wp_posts.sql"

Түгел используйте порт MySQL! Сайлагыз, теләсә кайсы башка кулай. Игътибар итегез, команда перенаправляет нәтиҗә шул файл .sql, ул саклана буенча күрсәтелгән юллары (әгәр, C:).

Адым 2: Кабат булдыру, таблицалар Мәгълүматлар Базасында

Яңа мәгълүматлар базасына, создайте таблицасын, скрипт оештырылган бу бер адым кала 1. Бигрәк тә мин исемгә һәм яңа версиясе WampServer һәм кулланды PHPMyAdmin (http://localhost/phpmyadmin/) булдыру өчен мәгълүматлар базасына һәм импортировать SQL-скрипт оештырылган бу бер адым кала 1 (recovered_wp_posts.sql). Бу скрипт булачак булдырырга 2 файллар " каталог сезнең базасын MySQL:

  SUA_TABELA.frm
SUA_TABELA.idb

Минем очракта, бу файллар ачтылар C:\wamp64binmysqlmysql mysql5.7.14data<meubanco>. Ягъни,, найдите аны урнаштыру MySQL һәм игътибар итегез, дип каталоге дата анда булачак сезнең һәм ике санап үтелгән файлларның.

Адым 3: Удалите яңа файл .idb

Өчен бетерә яңа файл .idb, выполните следующую командасын SQL:

/* Универсаль үрнәге */
  ALTER TABLE mytable DISCARD TABLESPACE;
 
/* Мәсәлән, практикада белән таблицей wp_posts WordPress */
  ALTER TABLE wp_posts DISCARD TABLESPACE;

Бу команда удаляет элемтә арасында таблицалар һәм табличного (Урын, анда физик яктан саклана файллар базасын), һәм бетерә бу файл .idb.

Адым 4: Скопировать иске файл .idb

Файл .idb оригинал (бу үз эченә алган мәгълүматлар) кирәк булачак скопировать урынга .idb торган иде удален бер адым кала 3. Используйте ярашуы клавиш Ctrl+C һәм Ctrl+V, яки шул ук үтерергә ярдәмендә команда юллар.

Адым 5: Активировать таблицасын

Сломанной сылтама бу Адым 3 кирәк торгызырга ярдәмендә киләсе командасы:

/* Универсаль үрнәге */
  ALTER TABLE mytable IMPORT TABLESPACE;
 
/* Мәсәлән, практикада белән таблицей wp_posts WordPress */
  ALTER TABLE wp_posts IMPORT TABLESPACE;

Түгел волнуйтесь, әгәр сез алачаксыз берничә кисђтњ, әмма, бәлки, нәрсә бирә сбоя, гомумән дә уяна түбәндәгеләрне хәбәр турында ошибке:

  #1808 - Схемалар mismatch (Table has ROW_TYPE_DYNAMIC row format, .ibd file has ROW_TYPE_COMPACT row format.)

Бу очракта, бу хђл аркасында, югыйсә караганда mysql5.7.14 (ЯҢА) булдыра таблицасын буенча шаблон, карата Mysql 5.6.17 (ИСКЕ), башка ROW_FORMAT=compact.

Булса,, әгәр сез используете MySQL >= mysql5.7.14, барысы да сезгә эшләргә кирәк, бу-өстәргә ROW_FORMAT=compact " параметрлары таблицалар булдыру.

  CREATE TABLE `wp_posts` (. . .) ENGINE=InnoDB ROW_FORMAT=compact

Башка хаталар

Гади калдырырга теркәлгән, керткәнче ирешергә уңышка извлечении мәгълүматлар .frm, минем иде берничә хата:

  # Source on localhost: ... connected.
  # Starting the икрило server on port 3304 ... ERROR Attempting to stop failed server икрило.  Process id = 6648.
  ERROR: Spawn server operation failed. Клон server error: Unable to communicate with new instance. Process id = 6648.. To diagnose, the run utility and again кулланырга "  --параметр "детализация" мөмкинлек бирә тикшереп хәбәрләр нче породившей серверы һәм төзәтү теләсә нинди хаталар, тәкъдим ителгән запустите программасына тагын бер тапкыр.
  Уңыш: Процессы белән PID 6648 (дочерний процессы ПИД 7264) иде прекращена.
Нәтиҗә (иң недавний соңгы чакырылышта):
  Файл "G:\adebuildsb_0-19921351-1470074463.97Python-2.7.6-windows-x86-64bitlibsite-packagescx_FreezeinitscriptsConsole.py", линия 27, "  <модуль>
  Файл "scripts\mysqlfrm.py", линия 422, "  <модуль>
  Файл ".\mysql\utilities\command\read_frm.py", линия 439, бу read_frm_files
  Файл ".\mysql\utilities\command\read_frm.py", линия 166, бу _spawn_server
  Файл ".\mysql\utilities\command\serverclone.py", линия 180, бу clone_server
  Файл ".\mysql\utilities\common\tools.py", линия 273, бу get_mysqld_version
IOError: [Әһәмияте errno 13] Рөхсәт кире кагылды: 'version_check'

Бу конкрет очракта WordPress, сезгә кирәк бетерә скрипт, ул сгенерировал SQL алынган .frm, барлык язмалар 'DEFAULT ‘0000-00-00 00:00:00', югыйсә, булачак тотарга хатасын:

  #1067 - Әһәмияте буенча шаблон (шаблон буенча) недопустимый өчен "comment_date'

Бу -!

Чыганаклар

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

Нәтиҗәдә алу: 21448

12 фикерләр турында “Яңадан таблицалар MySQL вакытта гына файллар .frm .ibd билгеле

  1. Родриго диде:

    Нишләргә, кайчан барлыкка киләчәк түбәндәгеләрне хәбәр турында ошибке: #1815 – Internal error. Cannot reset LSNs in table “meubanco”.”mytable”: Data structure corruption.
    Була, мин үтәү вставок килгән әлеге яңартуны кулдан? Ничек моны эшләргә?
    Инде хәзер белдерәм, сине.

  2. Кристиан U диде:

    Сәлам Тейлор,

    How did you solve this error:
    ERROR: Spawn server operation failed. Клон server error: Аласыз белән аралашырга, яңа нөсхәсен. Process id = 6648.. To diagnose, the run utility again and use the –параметр "детализация" мөмкинлек бирә тикшереп хәбәрләр нче породившей серверы һәм төзәтү теләсә нинди хаталар, тәкъдим ителгән запустите программасына тагын бер тапкыр.
    Уңыш: Процессы белән PID 6648 (дочерний процессы ПИД 7264) иде прекращена.

    I keep receiving the same message and I dont know how to solve it.

    Рәхмәт

Җавап язарга

Сезнең e-mail булмаячак басылды. Мәҗбүри кырлар помечены *