[前][次][番号順一覧][スレッド一覧]

mysql:16657

From: yoku0825 <yoku0825 <yoku0825@xxxxxxxxxx>>
Date: Thu, 23 Sep 2021 14:28:31 +0900
Subject: [mysql 16657] Re: [mysql 16656] frmとibdのみのデータからデータベースの復旧方法について

yoku0825といいます。


> ERROR 1808 (HY000): Schema mismatch (Table has ROW_TYPE_DYNAMIC row \

>  format, .ibd file has ROW_TYPE_COMPACT row format.)


.frmファイルではROW_FORMAT= DYNAMIC,
.ibdファイルではROW_FORMAT=COMPACT が指定されていることに起因しています。

https://dev.mysql.com/doc/refman/5.6/ja/innodb-row-format-dynamic.html

MySQL 5.6とそれ以前では、CREATE TABLEにROW_FORMATを指定しなかった場合はCOMPACTで作成されました。
(その時代に最初にテーブルが作られて、その後5.7へのバージョンアップをされたのではないかなと推測します。
 バージョンアップの時のmysql_upgradeではこの値は変更されません)
MySQL 5.7とそれ以降は、同じく指定しなかった場合はDYNAMICで作成されます。

なので、

> 2020.12.12に作ったバックアップで復元させて、復元出来た事確認して、


の時点で(DISCARDの前に)

ALTER TABLE .. ROW_FORMAT= COMPACT;

をすべてのテーブルに打って回ってください。
そのあとに、ALTER TABLE .. DISCARD TABLESPACE, ibdファイルコピー, ALTER TABLE ..
IMPORT TABLESPACE でどうでしょうか?


yoku0825,



ちなみに、

> MySQL 5.6を別なマシンにセットして、試してみましたが、こちらでは、DISCARD TABLESPACの


もとのibdファイルが5.7のものであれば、そうなります。MySQLは後方互換性(5.6の.ibdファイルを5.7で開く)はありますが、
前方互換性(5.7の.ibdファイルを5.6で開く)はサポートしていないからです!

2021年9月23日(木) 10:44 岡善博 <zenpaku@xxxxxxxxxx>:
>

> 初めまして、昨夜「MySQL徹底入門」でこのMLを知って、登録させて頂いた

> 北海道十勝に住む岡 善博と云う者です。

>

> 自宅サーバでWordPressを立ち上げていて、不覚にもデータベースのバックアップ

> 取らずにOSをFreeBSD 11.3Rp13から12.2Rp7に上げてしまいました。

>

> 作っていたデータベース(zenpakudb)の*.frmと*.ibdが有る状態です。

> これらからデータベースの復旧をしたいのです。

> それらのファイルは、これです。

> -rw-rw----  1 mysql  mysql        65         4月 21  2017 db.opt

> -rw-rw----  1 mysql  mysql      3033       4月 21  2017 wp_commentmeta.frm

> -rw-rw----  1 mysql  mysql   9437184    9月 14 21:43 wp_commentmeta.ibd

> -rw-rw----  1 mysql  mysql      6679     12月 12  2020 wp_comments.frm

> -rw-rw----  1 mysql  mysql   9437184   9月 14 21:43 wp_comments.ibd

> -rw-rw----  1 mysql  mysql      3197      4月 24  2017 wp_ktaisession.frm

> -rw-rw----  1 mysql  mysql     98304    4月 24  2017 wp_ktaisession.ibd

> -rw-rw----  1 mysql  mysql      8102      4月 21  2017 wp_links.frm

> -rw-rw----  1 mysql  mysql    114688    4月 21  2017 wp_links.ibd

> -rw-rw----  1 mysql  mysql      2854     4月 21  2020 wp_options.frm

> -rw-rw----  1 mysql  mysql   9437184   9月 18 01:42 wp_options.ibd

> -rw-rw----  1 mysql  mysql      3030      4月 21  2017 wp_postmeta.frm

> -rw-rw----  1 mysql  mysql  14680064  9月 16 20:23 wp_postmeta.ibd

> -rw-rw----  1 mysql  mysql      7211       4月 21  2017 wp_posts.frm

> -rw-rw----  1 mysql  mysql  14680064  9月 16 20:23 wp_posts.ibd

> -rw-rw----  1 mysql  mysql      1496      4月 21  2017 wp_term_relationships.frm

> -rw-rw----  1 mysql  mysql    212992    9月 16 20:22 wp_term_relationships.ibd

> -rw-rw----  1 mysql  mysql      2209     4月 21  2017 wp_term_taxonomy.frm

> -rw-rw----  1 mysql  mysql    131072    9月 16 20:23 wp_term_taxonomy.ibd

> -rw-rw----  1 mysql  mysql      3030     4月 21  2017 wp_termmeta.frm

> -rw-rw----  1 mysql  mysql    131072    4月 21  2017 wp_termmeta.ibd

> -rw-rw----  1 mysql  mysql      3592     4月 21  2017 wp_terms.frm

> -rw-rw----  1 mysql  mysql    131072    8月 15 09:03 wp_terms.ibd

> -rw-rw----  1 mysql  mysql      3031     4月 21  2017 wp_usermeta.frm

> -rw-rw----  1 mysql  mysql    131072    9月 16 19:49 wp_usermeta.ibd

> -rw-rw----  1 mysql  mysql      6962     4月 21  2017 wp_users.frm

> -rw-rw----  1 mysql  mysql    147456   4月 21  2017 wp_users.ibd

> -rw-rw----  1 mysql  mysql      1144     4月 24  2017 wp_wpmm_subscribers.frm

> -rw-rw----  1 mysql  mysql     98304   4月 24  2017 wp_wpmm_subscribers.ibd

>

> Webを検索して、

> https://4to.pics/article/post/122

> のページを見つけ、これだ〜と思って、やってみました。

> mysql57-server-5.7.35を入れて、ユーザを作り、データベースを作りました。

> 2020.12.12に作ったバックアップで復元させて、復元出来た事確認して、

> *.frm,*.ibdをコピーして、Webで見つけた手順を試みました。

> そのままでは、mysqldが起動出来ないので、ib_logfile0,1を消して起動させました。

> use zenpakudb;

> show tables; でちゃんと表示され、show table status;では、NULLが表示されたので、

> alter table wp_commentmeta DISCARD TABLESPACE; などを実行し、成功。

> alter table wp_commentmeta IMPORT TABLESPACE;  を実行すると、

> ERROR 1808 (HY000): Schema mismatch (Table has ROW_TYPE_DYNAMIC row \

>  format, .ibd file has ROW_TYPE_COMPACT row format.)

> のエラーが出てしまいます。

>

> MySQL 5.6を別なマシンにセットして、試してみましたが、こちらでは、DISCARD TABLESPACの

> 段階でもエラーが出てしまいます。

>

> ここで、力尽き、*.frmと*.ibdからでデータベース復旧にアドバイスを頂けたら嬉しいです。

> *.frmと*.ibdからの復旧は、不可能と云うのであれば、2020.12.12でデータでWordPressの

> 復旧させるのですが、半年以上の写真は、残っているので、何とかデータベースを復旧させたい

> のです。宜しくお願いします。

>

>


[前][次][番号順一覧][スレッド一覧]

   @ 16656 2021-09-23 10:43 [岡善博 <zenpaku@xxxx] frmとibdのみのデータからデータベースの復旧方法について
->   16657 2021-09-23 14:28 ┗[yoku0825 <yoku0825@x] Re: [mysql 16656] frmとibdのみのデータからデータベースの復旧方法について
   @ 16658 2021-09-23 18:21  ┗[岡善博 <zenpaku@xxxx] Re: [mysql 16657] Re: [mysql 16656] frmとibdのみのデータからデータベースの復旧方法について
   @ 16659 2021-09-23 21:11   ┗[岡善博 <zenpaku@xxxx]                                   
     16660 2021-09-23 21:34    ┗[yoku0825 <yoku0825@x] Re: [mysql 16659] Re: [mysql 16657] Re: [mysql 16656] frmとibdのみのデータからデータベースの復旧方法について