mysql:16672
From: yoku0825 <yoku0825 <yoku0825@xxxxxxxxxx>>
Date: Sun, 26 Sep 2021 17:37:10 +0900
Subject: [mysql 16672] Re: [mysql 16671] Re: [mysql 16668] Re: [mysql 16667] Re: [mysql 16666] Re: [mysql 16665] Re: [mysql 16664] Re: [mysql 16663] Re: frmとibdのみのデータからデータベースの復旧方法について
yoku0825です。 > 自宅サーバでWordPressを立ち上げていて、不覚にもデータベースのバックアップ > 取らずにOSをFreeBSD 11.3Rp13から12.2Rp7に上げてしまいました。 > wordpressを構築した時は、MySQL5.6でした。 OSをバージョンアップした時点でのMySQLはいくつでしたか? (その時点のMySQLと合わせたバージョンにするのが望ましいと思っています。 ibdファイルだけ無理矢理インポートするようなイレギュラーなケースなので、 リリースシリーズをまたいだ(たとえば、5.6と5.7)状態で それが無理矢理できるようなものなのかわかりません) > ただ、DISCARD TABLESPACEを実行後、ibdは、消えていませんでしたが、念のため これも何かおかしいです。パスが間違っているか正しくibdファイルをつかめていない気がします。 綺麗に以下のように再実行できますか? FreeBSDのレイアウトは知らないので、Linux - Generalを使って /usr/local/mysql の下にもろもろがある状態のコマンド例です。適宜読み替えてください。 ---- /usr/local/mysql/bin/mysqladmin shutdown ### MySQLを止めます。他にコマンドがあるようならこれでなくてかまいません rm -r /usr/local/mysql/data ### 一度中身をきれいにします /usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --datadir=/usr/local/mysql/data ### データディレクトリを初期化します /usr/local/mysql/bin/mysqld --daemonize ### MySQLを起動します。他にコマンドがあるようならこれでなくてかまいません /usr/local/mysql/bin/mysql -uroot < mysqldump_zenpakudb20190223.dump ### 以前のmysqldumpをリストアします。まだ.ibdファイルには触りません この時点では、古いデータを格納したibdファイルが出来上がっているはずです。 sql_modeを''に設定、これは好きな方法でやって大丈夫だと思います(my.cnfに書くのかSET GLOBALでやるのか) mysql> use zenpakudb mysql> ALTER TABLE .. ROW_FORMAT = Compact; この時点では、古いデータを格納したibdファイルがまだ存在しているはずです。 mysql> ALTER TABLE .. DISCARD TABLESPACE; ここでibdファイルが消えます。 cp -ip /path/to/ibd /usr/local/mysql/data/zenpakudb/ ここでibdファイルを置きますが、まだmysqldはこのファイルを認識していないはずです(何ならlsofとかで確認できるはずです) mysql> ALTER TABLE .. IMPORT TABLESPACE; mysql> SHOW WARNINGS; .cfgファイル(本来ならibdと一緒においてIMPORT TABLESPACEすべきもの)が無いというワーニングが一発返ってくるはずです。 この時点で.ibdファイルを掴むので、lsofとかするとmysqldが掴んでいるのが確認できます。 cat /usr/local/mysql/data/*.err 手元で5.7のibdを無理矢理同じ手順で突っ込んだ時は、↓のようなエラーログ出力がありました。 2021-09-24T22:53:53.503767+09:00 7 [Note] InnoDB: Sync to disk 2021-09-24T22:53:53.506481+09:00 7 [Note] InnoDB: Sync to disk - done! 2021-09-24T22:53:53.506584+09:00 7 [Note] InnoDB: Phase I - Update all pages 2021-09-24T22:53:53.507082+09:00 7 [Note] InnoDB: Sync to disk 2021-09-24T22:53:53.508440+09:00 7 [Note] InnoDB: Sync to disk - done! 2021-09-24T22:53:53.509726+09:00 7 [Note] InnoDB: Phase III - Flush changes to disk 2021-09-24T22:53:53.514926+09:00 7 [Note] InnoDB: Phase IV - Flush complete 2021-09-24T22:53:53.515191+09:00 7 [Note] InnoDB: `world`.`country` autoinc value set to 0 2021-09-24T22:54:09.281184+09:00 7 [Note] InnoDB: Sync to disk 2021-09-24T22:54:09.282847+09:00 7 [Note] InnoDB: Sync to disk - done! 2021-09-24T22:54:09.282903+09:00 7 [Note] InnoDB: Phase I - Update all pages 2021-09-24T22:54:09.283399+09:00 7 [Note] InnoDB: Sync to disk 2021-09-24T22:54:09.284621+09:00 7 [Note] InnoDB: Sync to disk - done! 2021-09-24T22:54:09.285799+09:00 7 [Note] InnoDB: Phase III - Flush changes to disk 2021-09-24T22:54:09.292091+09:00 7 [Note] InnoDB: Phase IV - Flush complete 2021-09-24T22:54:09.292302+09:00 7 [Note] InnoDB: `world`.`countrylanguage` autoinc value set to 0 2021-09-24T22:54:14.613937+09:00 7 [Note] InnoDB: Sync to disk 2021-09-24T22:54:14.616092+09:00 7 [Note] InnoDB: Sync to disk - done! 2021-09-24T22:54:14.616143+09:00 7 [Note] InnoDB: Phase I - Update all pages 2021-09-24T22:54:14.617168+09:00 7 [Note] InnoDB: Sync to disk 2021-09-24T22:54:14.618780+09:00 7 [Note] InnoDB: Sync to disk - done! 2021-09-24T22:54:14.619797+09:00 7 [Note] InnoDB: Phase III - Flush changes to disk 2021-09-24T22:54:14.625587+09:00 7 [Note] InnoDB: Phase IV - Flush complete 2021-09-24T22:54:14.625773+09:00 7 [Note] InnoDB: `world`.`city` autoinc value set to 0 2021-09-24T22:54:14.630708+09:00 7 [Note] InnoDB: AUTOINC next value generation is disabled for '`world`.`city`' もしどこか想定していない事象(特に、ibdファイルが現れたり消えたり掴んだりするあたり)が発生したら、 MySQLを停止してデータディレクトリを空っぽにするところから再実行してください。 OSアップグレード前のバージョンが5.6だったなら、5.6のmysqldを使った方が確実だと思います。 yoku0825, 2021年9月25日(土) 21:52 岡善博 <zenpaku@xxxxxxxxxx>: > > 岡善博@中札内です。 > > ちょっと気に成る事が有って、再度復元作業をしました。 > -rw-rw---- 1 mysql mysql 6679 12月 12 2020 wp_comments.frm > は、ちゃんとパックアップした日に成っていて、WordPressをアップデートする前に > バックアップを取って、バージョンアップで更新されたのかもと思いました。 > > で復元手順を進めて行くと、下記のエラーが出ました。 > ERROR 2013 (HY000): Lost connection to MySQL server during query > > https://qiita.com/shy_azusa/items/9f6ba519cfda626db52b > のページの対策をしました。 > [mysqld] > wait_timeout = 86400 ;これは、全くの追加でした。 > max_allowed_packet = 256M ;16Mから1Gは、どうよと思い256Mにしました。 > innodb_buffer_pool_size = 1G ;これは、元々記述されていました。 > > mysqldを再起動して、mysqlもコネクションを張り直し、復元作業は、エラー無く > 出来ました。 > ただ、DISCARD TABLESPACEを実行後、ibdは、消えていませんでしたが、念のため > cpを実行しています。 > > /usr/home/oka/BACKUP: mysqldump --single-transaction --no-tablespaces \ > --set-gtid-purged=OFF -u zenpakudb -p zenpakudb > /home/oka/BACKUP/mysqldump_zenpakudb.dump > Enter password: > mysqldump: Couldn't execute 'show table status like 'wp\_postmeta'': \ > Lost connection to MySQL server during query (2013) > > と云うメッセージは、まだ出ます。 > > -rw-r--r-- 1 oka oka 2001654 9月 25 21:20 mysqldump_zenpakudb.dump <=今回。 > -rw-r--r-- 1 root oka 3070302 2月 23 2019 mysqldump_zenpakudb20190223.dump > -rw-r--r-- 1 oka oka 3966673 10月 4 2019 mysqldump_zenpakudb20191004.dump > -rw-r--r-- 1 root oka 3964939 10月 19 2019 mysqldump_zenpakudb20191019.dump > -rw-r--r-- 1 root oka 7925810 12月 12 2020 mysqldump_zenpakudb20201212.dump > > 2021年9月25日(土) 1:35 岡善博 <zenpaku@xxxxxxxxxx>: >> >> 岡@中札内です。 >> ちょっと気に成る事が有ります。 >> 有る時点で、mysql_mode=‘’に設定して、元の状態に戻していません。 > > この問題は、セッションを張り直したら元の設定に戻っていると云う > 理解であっていますか?
@ 16662 2021-09-24 10:36 [岡善博 <zenpaku@xxxx] Re: [mysql 16660] Re: [mysql 16659] Re: [mysql 16657] Re: [mysql 16656] frmとibdのみのデータからデータベースの復旧方法について 16663 2021-09-24 11:58 ┗[Takahiro Kambe <taca] Re: frmとibdのみのデータからデータベースの復旧方法について 16664 2021-09-24 13:01 ┗[yoku0825 <yoku0825@x] Re: [mysql 16663] Re: frmとibdのみのデータからデータベースの復旧方法について @ 16665 2021-09-24 14:04 ┗[岡善博 <zenpaku@xxxx] Re: [mysql 16664] Re: [mysql 16663] Re: frmとibdのみのデータからデータベースの復旧方法について 16666 2021-09-24 14:20 ┗[yoku0825 <yoku0825@x] Re: [mysql 16665] Re: [mysql 16664] Re: [mysql 16663] Re: frmとibdのみのデータからデータベースの復旧方法について @ 16667 2021-09-24 20:08 ┗[岡善博 <zenpaku@xxxx] Re: [mysql 16666] Re: [mysql 16665] Re: [mysql 16664] Re: [mysql 16663] Re: frmとibdのみのデータからデータベースの復旧方法について 16668 2021-09-24 23:26 ┗[yoku0825 <yoku0825@x] Re: [mysql 16667] Re: [mysql 16666] Re: [mysql 16665] Re: [mysql 16664] Re: [mysql 16663] Re: frmとibdのみのデータからデータベースの復旧方法について @ 16669 2021-09-25 01:16 ┣[岡善博 <zenpaku@xxxx] Re: [mysql 16668] Re: [mysql 16667] Re: [mysql 16666] Re: [mysql 16665] Re: [mysql 16664] Re: [mysql 16663] Re: frmとibdのみのデータからデ 16670 2021-09-25 01:34 ┗[岡善博 <zenpaku@xxxx] Re: [mysql 16668] Re: [mysql 16667] Re: [mysql 16666] Re: [mysql 16665] Re: [mysql 16664] Re: [mysql 16663] Re: frmとibdのみのデータからデ @ 16671 2021-09-25 21:51 ┗[岡善博 <zenpaku@xxxx] -> 16672 2021-09-26 17:37 ┗[yoku0825 <yoku0825@x] Re: [mysql 16671] Re: [mysql 16668] Re: [mysql 16667] Re: [mysql 16666] Re: [mysql 16665] Re: [mysql 16664] Re: [mysql 16663] Re @ 16673 2021-09-26 20:20 ┗[岡善博 <zenpaku@xxxx] Re: [mysql 16672] Re: [mysql 16671] Re: [mysql 16668] Re: [mysql 16667] Re: [mysql 16666] Re: [mysql 16665] Re: [mysql 16664] Re @ 16676 2021-10-05 16:20 ┗[岡善博 <zenpaku@xxxx]