MySQLのデータベースがようやく復旧

自宅サーバで立ち上げているWordPressで立ち上げているブログが、FreeBSD 11.3Rp13 ⇒ FreeBSD 12.2Rp7 にUpgradeしたら、ブログが動かなく成りました。不幸にもデータベースのバックアップは、2020年12月12日から取っていません。

手元には、MySQLのfrmとibdファイルしか無いので、これらからデーターベースの復旧を試みていました。

frmとibdファイルから復元した時、wp_optionsとwp_postmetaに損傷が有ったようで、mysqldumpが途中で止まってしまいました。
復元後、この二つのテーブルを除いてmysqldumpを取りました。①
wp_optionsの単体でmysqldumpが取れたので、これはそのまま使い、②
wp_postmetaに関しては、20201212の時の物を使って、mysqldumpを取りました。③
この3個(①②③)のdumpファイルで、データベースを復元したものは、スムーズにmysqldumpが取れる様になり、データベースは、復元出来たと判断しました。

その復旧作業の様子は、こんな感じでした。

で、その時の作業メモを書いて置きます。

MySQLデータベースの復元手順

・/var/db/mysqlのディレクトリーを削除。

・/usr/local/etc/rc.d/mysql-server start

・/usr/local/etc/rc.d/mysql-server stop

・mysqld_safe –skip-grant-tables & で、起動。

・mysql -u root
mysql> use mysql;
mysql> update user set authentication_string=password(“1234qwer”) where user=’root’;
mysql> commit;
mysql> flush privileges;
mysql> quit
# /usr/local/etc/rc.d/mysql-server restart

・rootのパスワードを再設定
# mysql -u root -p
mysql> set password for root@localhost=password(‘passwordPASSWORD@999’);

・zenpakudbのユーザーの作成とデータベース作成
mysql> create user `zenpakudb`@`localhost` IDENTIFIED BY ‘123qwe’;
create user `zenpakudb`@`localhost` IDENTIFIED BY ‘123qwe@123QWE’;
mysql> create database zenpakudb;
mysql> grant all privileges on zenpakudb.* to zenpakudb@localhost IDENTIFIED BY ‘123qwe’;

・ダンプファイルの復元
# mysql -u zenpakudb -p zenpakudb < ./mysqldump_zenpakudb20201212.dump
mysqldump –single-transaction -u zenpakudb -p zenpakudb > /home/oka/BACKUP/mysqldump_zenpakudb.dump
mysqldump –single-transaction –no-tablespaces -u zenpakudb -p zenpakudb > /home/oka/BACKUP/mysqldump_zenpakudb.dump

・wp_optionsのみのバックアップ
mysqldump -u zenpakudb -p zenpakudb wp_options –single-transaction –no-tablespaces –set-gtid-purged=OFF > zenpakudb_options.dump

・wp_postmetaのみのバックアップ
mysqldump -u zenpakudb -p zenpakudb wp_postmeta –single-transaction –no-tablespaces –set-gtid-purged=OFF > zenpakudb_postmeta.dump

・テーブルリストの出力
mysql -uzenpakudb -p zenpakudb -N -e “show tables like ‘wp_%'” > tablelist.txt

・テーブルリストを使ってバックアップ
mysqldump -uzenpakudb -p zenpakudb `cat ./tablelist.txt` –single-transaction –no-tablespaces –set-gtid-purged=OFF >zenpakudb_x_opt_meta.dump

# mysql -u root -p
mysql> use zenpakudb;
mysql> show tables;
mysql> show table status;
mysql> SET sql_mode =” ”;

cp -a /var/db/mysql20210920/zenpakudb.NEW/*.* .

# wp_commentmeta
alter table wp_commentmeta ROW_FORMAT= COMPACT;
cp -a /var/db/mysql20210920/zenpakudb.NEW/wp_commentmeta.ibd .
alter table wp_commentmeta DISCARD TABLESPACE;
cp -a /var/db/mysql20210920/zenpakudb.NEW/wp_commentmeta.ibd .
alter table wp_commentmeta IMPORT TABLESPACE;

# wp_comments
alter table wp_comments ROW_FORMAT= COMPACT;
cp -a /var/db/mysql20210920/zenpakudb.NEW/wp_comments.ibd .
alter table wp_comments DISCARD TABLESPACE;
cp -a /var/db/mysql20210920/zenpakudb.NEW/wp_comments.ibd .
alter table wp_comments IMPORT TABLESPACE;

# wp_ktaisession
alter table wp_ktaisession ROW_FORMAT= COMPACT;
cp -a /var/db/mysql20210920/zenpakudb.NEW/wp_ktaisession.ibd .
alter table wp_ktaisession DISCARD TABLESPACE;
cp -a /var/db/mysql20210920/zenpakudb.NEW/wp_ktaisession.ibd .
alter table wp_ktaisession IMPORT TABLESPACE;

# wp_links
alter table wp_links ROW_FORMAT= COMPACT;
cp -a /var/db/mysql20210920/zenpakudb.NEW/wp_links.ibd .
alter table wp_links DISCARD TABLESPACE;
cp -a /var/db/mysql20210920/zenpakudb.NEW/wp_links.ibd .
alter table wp_links IMPORT TABLESPACE;

# wp_options
alter table wp_options ROW_FORMAT= COMPACT;
cp -a /var/db/mysql20210920/zenpakudb.NEW/wp_options.ibd .
alter table wp_options DISCARD TABLESPACE;
cp -a /var/db/mysql20210920/zenpakudb.NEW/wp_options.ibd .
alter table wp_options DISCARD TABLESPACE;

 

# wp_postmeta
alter table wp_postmeta ROW_FORMAT= COMPACT;
cp -a /var/db/mysql20210920/zenpakudb.NEW/wp_postmeta.ibd .
alter table wp_postmeta DISCARD TABLESPACE;
cp -a /var/db/mysql20210920/zenpakudb.NEW/wp_postmeta.ibd .
alter table wp_options IMPORT TABLESPACE;

 

# wp_posts
alter table wp_posts ROW_FORMAT= COMPACT;
cp -a /var/db/mysql20210920/zenpakudb.NEW/wp_posts.ibd .
alter table wp_posts DISCARD TABLESPACE;
cp -a /var/db/mysql20210920/zenpakudb.NEW/wp_posts.ibd .
alter table wp_posts IMPORT TABLESPACE;

# wp_term_relationships
alter table wp_term_relationships ROW_FORMAT= COMPACT;
cp -a /var/db/mysql20210920/zenpakudb.NEW/wp_term_relationships.ibd .
alter table wp_term_relationships DISCARD TABLESPACE;
cp -a /var/db/mysql20210920/zenpakudb.NEW/wp_term_relationships.ibd .
alter table wp_term_relationships IMPORT TABLESPACE;

 

# wp_term_taxonomy
alter table wp_term_taxonomy ROW_FORMAT= COMPACT;
cp -a /var/db/mysql20210920/zenpakudb.NEW/wp_term_taxonomy.ibd .
alter table wp_term_taxonomy DISCARD TABLESPACE;
cp -a /var/db/mysql20210920/zenpakudb.NEW/wp_term_taxonomy.ibd .
alter table wp_term_taxonomy IMPORT TABLESPACE;

 

# wp_termmeta
alter table wp_termmeta ROW_FORMAT= COMPACT;
cp -a /var/db/mysql20210920/zenpakudb.NEW/wp_termmeta.ibd .
alter table wp_termmeta DISCARD TABLESPACE;
cp -a /var/db/mysql20210920/zenpakudb.NEW/wp_termmeta.ibd .
alter table wp_termmeta IMPORT TABLESPACE;

# wp_terms
alter table wp_terms ROW_FORMAT= COMPACT;
cp -a /var/db/mysql20210920/zenpakudb.NEW/wp_terms.ibd .
alter table wp_terms DISCARD TABLESPACE;
cp -a /var/db/mysql20210920/zenpakudb.NEW/wp_terms.ibd .
alter table wp_terms IMPORT TABLESPACE;

 

# wp_usermeta
alter table wp_usermeta ROW_FORMAT= COMPACT;
cp -a /var/db/mysql20210920/zenpakudb.NEW/wp_usermeta.ibd .
alter table wp_usermeta DISCARD TABLESPACE;
cp -a /var/db/mysql20210920/zenpakudb.NEW/wp_usermeta.ibd .
alter table wp_usermeta IMPORT TABLESPACE;

 

# wp_users
alter table wp_users ROW_FORMAT= COMPACT;
cp -a /var/db/mysql20210920/zenpakudb.NEW/wp_users.ibd .
alter table wp_users DISCARD TABLESPACE;
cp -a /var/db/mysql20210920/zenpakudb.NEW/wp_users.ibd .
alter table wp_users IMPORT TABLESPACE;

# wp_wpmm_subscribers
alter table wp_wpmm_subscribers ROW_FORMAT= COMPACT;
cp -a /var/db/mysql20210920/zenpakudb.NEW/wp_wpmm_subscribers.ibd .
alter table wp_wpmm_subscribers DISCARD TABLESPACE;
cp -a /var/db/mysql20210920/zenpakudb.NEW/wp_wpmm_subscribers.ibd .
alter table wp_wpmm_subscribers IMPORT TABLESPACE;

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です