wordpressでのスマホ対応webサイト制作・wpプラグイン・PHPプログラム・SNS活用・ 動画・bgmやテーマ曲アレンジまで考えるコラム!

WPサイト接頭辞エラーまとめ~configやテーブル名変更・usermeta内の項目で、接頭辞不一致の場合

      2020/09/03

こんにちは、管理人@SS_mshpです。

今回は、管理人がお仕事でWPサイトお引っ越しをしたときに遭遇したケースについてです。WPサイト接頭辞についてです。
データベースの状況的に『テーブル接頭辞』を変更する形になりましたが、単純に接頭辞名だけ変更すればよいわけではなかったです。ログインなどにも影響するので、その状況含めて、エラーになるケースなどもまとめてみていきましょう。

WPのテーブル接頭辞とは?


例えば、WPのインストールするときとか…


wp-config.phpでデータベース接続設定に使う、アレですね。データベースを区別する名前みたいなものです。『データベース1個につき、アプリケーション1個』みたいな使い方をしていると、あまり気にならないかもしれません。

しかし、『1データベースに2つ以上WPのデータが入っている』ケースでは、接頭辞で区別する必要が出てきます。例えば、『○○(接頭辞)_options』というテーブルがありますが、2つ同じ名前のテーブルがあると、どっちからデータ抜いてよいかわからなくなります。

住所で例えると『青葉区・泉区』がテーブル名だとしたら『横浜市・仙台市』が接頭辞みたいなものです。郵便だったら○○区から書いても届くかもしれませんが、データベースはそうはいきません(笑)

WPのテーブル接頭辞が一致しないことによるエラー、いろいろ紹介

ここでは、お引越しなどで触れた、WPテーブル接頭辞変更に関わるエラーをご紹介。いくつか、管理人のテスト環境で行ってみました。ちょっと間違えただけで、サイト表示に関わる致命的エラーになることもあるので、ぜひ押さえておいてください。

wp-config.phpの接頭辞が違う→データが全く入っていないので、再インストール・設定画面に(wp5.5)


デフォルトの状態で『wp01_』になっていた接頭辞。wp-config.phpの接続情報で、わざと02に変えてみます。


記事やユーザーデータが入っているのは『wp01_』のテーブルなので、wp02にした場合は何も入っていません。wp5.5の環境でしたが、再インストール&初期設定みたいな状態になってしまいました。

〇〇(接頭辞)_postsテーブルの接頭辞が違う→データベース接続エラーで記事が出ない


ここら辺は、接頭辞を変えるときは、一気にそろえてしまうと思います。忘れるとヤバいことに。たとえば記事が入っている、〇〇(接頭辞)_postsテーブルを違うものにすると・・・


テーマはかろうじて表示していますが、データベース接続エラーで記事が出てこなくなります。(デバッグモードをonにしているので、派手に表示が出てきます。エラー内容を調べたいときはおすすめです)

〇〇(接頭辞)_usermetaテーブルの接頭辞が違う→ログインすらできません


次は『〇〇(接頭辞)_usermetaテーブル』も違うものにしてみます。このテーブルは、ユーザーのニックネームや管理画面の設定・権限などの情報が入っています。


ログイン情報と紐付けられているみたいですね~。『usermetaテーブルがありません』とエラー表示が出て、ログインすらできませんでした

usermetaテーブルのmeta_key:〇〇(接頭辞)_capabilitiesが違う→管理画面にアクセスする権限がありません


usermetaテーブルの接頭辞だけ合わせればよいというわけではありません。meta_keyの名前にも、接頭辞名が絡んでいるものがあるからです〇〇(接頭辞)_capabilitiesがその一例。meta_valueの値はa:1:{s:13:"administrator";b:1;}のように入っています。ユーザーidと紐付けられていて、『administrator→管理者ですよ』という情報です。ここが違っていると・・・


パスワードは入れられますが、トップページにリダイレクト。『wp-admin』に入ろうとすると『ページにアクセスする権限がありません』の表示が出ます。これではいつまでたってもサイトを編集できません。管理画面に入れなくても、データベースとFTPで編集する人がいるかもしれませんが(笑)

〇〇(接頭辞)_optionsテーブル・option_name:〇〇(接頭辞)_user_rolesが違う→こちらも管理画面アクセス不可


管理人もトラブル時はお世話になっている、〇〇(接頭辞)_optionsテーブル。siteurl・home・blogname・description・管理者メルアド・1ページあたり何記事表示・日付フォーマットなどの情報が入っています。option_name:〇〇(接頭辞)_user_rolesの場合も、権限などの一覧が入っており、上記の〇〇(接頭辞)_capabilitiesが違う場合と同様に、管理画面にアクセスすることができなくなります

あとがき・まとめ

  • WPのデータベースを住所で例えると『青葉区・泉区』がテーブル名だとしたら『横浜市・仙台市』が接頭辞みたいなもの
  • 移転などで接頭辞を変更する場合、単純にデータベースのテーブル名接頭辞だけを変更すればよいというわけではない
  • 接頭辞が違うだけで、致命的なエラーになるので、覚えておくとベター

まとめるとこのようなところでしょうか。『データベース1個につき、アプリケーション1個』の使い方のときは変更しないことのほうが多いでしょう。しかし、セキュリティ上運営を始めてから変えたりとか、サイト引っ越し時に変えたりというケースがありますので、上記の内容を押さえていただければ、対処がしやすいと思います。

*アトリエSS・web制作サービスページに移動します。webリニューアル・ロゴ・記事・wordpress化などでお力添えできます。

【カテゴリ】 - サイトエラー対策と復旧(wp/php/css)
【タグ】 - ,

  関連記事

MySQLデータベースからWordPressテーマ変更・プラグイン停止を行う方法【エラー・管理画面に入れないときに】

今回のお題は、WordPressエラー復旧などに使えるかもしれな ...

【ログインページが404】ディレクトリやWordPress アドレス変更でログインできない場合は、データベースからログインできるアドレスに直す

今回は、WordPress を使っていて怖いエラーの1つ『ログイ ...

WordPressサイトヘルスを『改善が必要→良好』にしたいけど、どうすれば良い?(プラグイン・テーマ・WP/PHPバージョンアップデート)

今回は、WordPressがサイトのセキュリティや稼働状態を勝手 ...

WordPressをcookie関連設定でログイン不可能にしてみた(cookieブロック・トークン削除・ログイン成功cookie削除)

今回は、WordPressでよくあるトラブル『ログインできない』 ...

WordPress 5.2がサーバーPHP5.6.2以下で動かなくなる事例~更新や閲覧はできる?バージョンアップの注意点は?

今回は、WordPressの最近の新しいバージョンで、PHPバー ...

【WordPress/エラー対策】プラグインbizcalendarが改造テーマで表示しない事例

今回は、最近このサイトでAPIカレンダープラグインの話題のアクセ ...

【WordPress4.9.7でのエラー検出】子テーマでindex.phpやCSSヘッダが無いときの『テーマが壊れています』表示への対策

今回は、2018年7月6日に出た、WordPressの新バージョ ...