今回、弊社サイトのリニューアルを行なうにあたり、弊社サーバーがいろいろ制限があり、1つのDBに集約する必要がありました。
その制限というのも、1つのデータベースしかないということです。ちょっと使いづらいですね。。。。
そこで、今まで運営していたサイトと合わせてリニューアル後のデータベースを1つのデータベースの中で両立させようとしました。
具体的には、プリフィックスを「wp-」から「wp2-」に変更することです。
早速変更してみたところ、、、、
管理画面にログインしようしたら、
というエラーが出て、管理画面に入れてもらえない事態に遭遇!
というわけで、
今回はこのエラーを解決した方法を記載します。
【解決方法】
結論からいうと、このエラーはWordPressのテーブル接頭辞(プリフィックス)を変更すると発生します。
なので、テーブル接頭辞を変更した場合はそれに伴うテーブルデータを変更すればエラーを解決できます。
【サイト移設の流れについて】
1.WordPressデータの引っ越し
仮設のリニューアル後のデータのあるサーバーからWordPressのデータを圧縮して既存のサーバに引っ越しさせました。
2.WordPressデータベースのエクスポート&インポート
データベースのテーブル内に入っている投稿記事や設定内容などのデータをphpmyadmin等のデータベース管理ツールを使って引っ越しをします。
3.wp-config.phpファイルの編集
(1)データベース情報の変更
(2)テーブル接頭辞の変更
新環境でのテーブル接頭辞に書きかえます。
$table_prefix = 'wp10_';
4.管理画面にログイン
これで移設完了!と思い、管理画面にログインしようとしたら
というエラーが出ました。
【エラーの原因について】
エラーが表示された原因はデータベースの接頭辞(プリフィックス)を変更したことにあります。
テーブル接頭辞を変更した場合にはそれに伴うテーブルデータの変更が必要です。
具体的には以下のテーブルデータを修正すれば、エラーは解消されます。
現状のテーブル名 | フィールド名 | 変更前の値 | 変更後の値 |
---|---|---|---|
wp_options | option_name | wp_user_roles | wp10_user_roles |
wp_usermeta | meta_key | wp_capabilities | wp10_capabilities |
wp_usermeta | meta_key | wp_user_level | wp10_user_level |
wp_usermeta | meta_key | wp_dashboard_quick_press_last_post_id | wp10_dashboard_quick_press_last_post_id |
wp_usermeta | meta_key | wp_user-settings | wp10_user-settings |
wp_usermeta | meta_key | wp_user-settings-time | wp10_user-settings-time |
【まとめ】
wp-config.phpだけの修正で大丈夫かと思ってましたが、微妙なデータベースの各値の変更も必要でした。