【WordPress】「このページにアクセスするための十分なアクセス権がありません。」の対処

公開日:
更新日:
カテゴリー: WordPress

WordPressサイトの移転が完了したと思い、管理画面にログインしようとしたら

このページにアクセスするための十分なアクセス権がありません。

というエラーが出ました。

ここではこのエラーの対処と移転のときの流れをメモしておきたいと思います。

解決法

まず結論から言うと、このエラーはWordPressの「wp-config.php」ファイルやデータベースの接頭辞(プリフィックス)を変更したことにより生じます。

そのため接頭辞の統一性を持たせればエラーを解消できます。

その方法は【WordPress】接頭辞(プリフィックス)を変更した時に注意すべきことにまとめましたのでそっちを参照して下さい。

移転の流れについて

ここからは自分用のメモとして、移転の流れについて整理しておこうと思います。

これまで独自ドメイン(○○○.com)で運営していたサイトを、別の独自ドメインのサブディレクトリ(□□□.net/△△△/)に移転させようとしました。

○○○.com → □□□.net/△△△/

そのため以下のことを行いました。

WordPressデータの引越し

AサーバーにあるWordPressデータ(ファイル・フォルダ)を圧縮してBサーバーに引越しさせました(解凍も行った)。

WordPressのデータベースの引越し

AサーバーにあるWordPressのデータベースをBサーバーに引越しし、このとき全テーブルの接頭辞を「wp_○○○」から「wp2_○○○」に変更しました(作成済みのデータベースにぶっこみたかったため)。

「wp-config.php」ファイルの修正

移転に伴いサイトURLとデータベース情報が変更されたので、WordPressのルートディレクトリにある「wp-config.php」ファイルの以下の部分を修正しました。

/** WordPress のためのデータベース名 */
define('DB_NAME', '*********');

/** MySQL データベースのユーザー名 */
define('DB_USER', '*********');

/** MySQL データベースのパスワード */
define('DB_PASSWORD', '*********');

/** MySQL のホスト名 */
define('DB_HOST', '*********');

また、テーブルの接頭辞を変更したので次のように変更しました。

$table_prefix  = 'wp_'; → $table_prefix  = 'wp2_';

「wp_options」テーブルの修正

phpMyAdminにログインし、「wp_options(私の場合はwp2_options)」テーブルの「siteurl」の部分を「http://□□□.net/△△△/」に変更しました

管理画面にログイン

これで移転が完了したと思い、管理画面にログインしようとしたところ

このページにアクセスするための十分なアクセス権がありません。

というエラーがでました。

原因

このエラーの原因ですが、テーブルの接頭辞を変更したことにあります。

私の場合、データベースの全テーブルの接頭辞を「wp_」→「wp2_」に変更し、「wp-config.php」ファイルの接頭辞部分も変更したのですが、これだけでは接頭辞の変更は不十分でした

「wp_options」テーブルの「option_name」フィールドにある「wp_user_roles」も変更

テーブル接頭辞を「wp_」→「wp2_」のように変更したので、「wp_options(私の場合はwp2_options)」テーブルの「option_name」フィールドにある「wp_user_roles」(私の場合92番目のレコード)も次のように変更しなければなりませんでした。

wp_user_roles → wp2_user_roles

「wp_usermeta」テーブルの「meta_key」フィールドにある各種名前を変更

上と同様な理由で、「wp_usermeta(私の場合はwp2_usermeta)」テーブルの「meta_key」フィールドにある下記の名前も同様に変更しなければなりませんでした。

  • wp_capabilities   (私の場合10番目のレコード)
  • wp_user_level   (私の場合11番目のレコード)
  • wp_dashboard_quick_press_last_post_id   (私の場合14番目のレコード)
  • wp_user-settings   (私の場合15番目のレコード)
  • wp_user-settings-time   (私の場合16番目のレコード)

つまり私の場合は以下のように変更しました。

wp_capabilities → wp2_capabilities

wp_user_level → wp2_user_level

wp_dashboard_quick_press_last_post_id → wp2_dashboard_quick_press_last_post_id

wp_user-settings → wp2_user-settings

wp_user-settings-time → wp2_user-settings-time

以上の対処でエラーがなくなり管理画面にログインできるようになりました。

 

あわせて読んでほしい!

 

コメント

1:newstyleservice:2014/08/16 1:50:29

同じ現象にぶち当たってしまい参考になりました!
無事管理画面にたどり着けました。

2:ryuichi:2018/09/01 3:07:36

約6時間ほどこの症状と格闘しておりましたが無事に解決できました。嬉さのあまり感謝のコメント書かせていただきます。本当に助かりました。

3:suav:2019/05/08 13:22:19

一言お礼をいいたいです!
私もサイトの移行後に同じ現象で、何日も調べていました。
特に接頭辞は最初から同じにしていたのに、なぜ?と。。。
そうしたら、同じにしていたつもりが、大文字と小文字を間違えていて。。。
直したら見事解決しました!

接頭辞についてのヒントをいただき、本当に助かりました!
どうもありがとうございました!

コメントフォーム
お名前
コメント