サイトアイコン puti se blog

wordpressリストア時に遭遇したmysqlエラー・失敗まとめ

wordpressのバックアップ・リストアテスト時に遭遇したmysqlエラーをまとめて紹介します。
今回試したのは、wordpressのデータベースバックアップとしては

データベースのリストア先には(別環境)

で実行するテストをしました。

mysqlコマンドによるデータインポートコマンド

今回リストアに使用したmysqlコマンドは以下のように実行しました

mysql -u aws -p wordpress < export.sql

上記は、「aws」というデーターベースユーザーで
「wordpress」というデータベースに、phpMyAdminでエクスポートした「export.sql」をインポートする意味です。
この方法で実施し、遭遇したエラーを紹介します。

ERROR 1062 (23000) at line 1422490: Duplicate entry '1' for key 'PRIMARY'

上記エラーメッセージが出力され、データがインポートできませんでした。
もう一度実行したら以下のようにエントリー番号が変わりました

ERROR 1062 (23000) at line 42: Duplicate entry '107160' for key 'PRIMARY'

これらは重複したプライマリキーがあるというメッセージです。
今回インポートしたデータベース(リストアしたデータベース)に既にデータがあった(既にwordpress記事が一件あった)ために発生しました。
phpMyAdminからのエクスポート時に、データベース上のテーブルを一度削除してから登録しなおすようなオプションを加えましょう。

※ その他のオプションは初期設定のままです

ERROR 2006 (HY000) at line 1427195: MySQL server has gone away

このメッセージは何回実行しても変わりませんでした。
phpMyAdminのエクスポート出力で

を変えてもやはり「MySQL server has gone away」エラーでデータが取り込めませんでした。

結果的に、リストア先のmysqlサーバー設定を変更することで「MySQL server has gone away」が解消されました

sudo vi /etc/my.cnf

my.cnfを開き「max_allowed_packet = 32M」設定を入れ保存します

mysqldサービスを再起動します。

sudo service mysqld restart

これで無事にデータベースのデータをインポートできました!

wordpress管理画面にログインできない。バックアップ先URLにリダイレクトされてしまう

wordpress管理画面にログインしようとしたところ、バックアップ元のURLに転送されてしまい、リストア先のURLにログインできなくなりました。
データベースのデータをインポートした影響です(データベース内にURLデータもあるということです)。

※ 今回試した環境は、バックアップ先とリストア先が別々のURLである環境です

sudo vi /var/www/html/wp-config.php

wp-config.phpを修正し、URLに関してはデータベース情報を見ないような優先設定を入れます。

define( 'WP_SITEURL', '<リストア先のURL>' );
define( 'WP_HOME', '<リストア先のURL>' );

これでwordpress管理画面にログインできるようになりました。

モバイルバージョンを終了