「WordPress」 接頭辞の変更方法!管理画面ログイン出来なくなってしまった時の対処法も

WordPressWordPressの接頭辞とは何なのでしょうか?

最近保留状態だった「ロリポップからwpXクラウドへサーバーを移転する方法 – 前編」に続き後編を書きたいと思いますが、データベースを操作する際にWordPressの接頭辞を変更する事になったので、その事について書きたいと思います。

SPONSORED LINK

photo by Christopher Ross

▼この記事の目次

接頭辞とは?

データベース

WordPressをインストールするとデータベースに「wp_」という接頭辞 (せっとうじ / 英単語:Prefix) が作られます。WordPressを一つのレンタルサーバー内で複数運営している時はこの接頭辞が「wp2_」「wp3_」と作られていきます。

接頭辞の確認方法

現在使っているブログの接頭辞を調べるにはFTPソフトを使います。「wp-config.php」というデータベースに関する情報を扱っているファイルがありますがそちらを開きます。

ズラーっと文章が並んでいますが下の方「$table_prefix = ‘wp_’;」や「$table_prefix = ‘wp○_’;」と書いてあるのがブログのデータベースの接頭辞になります。

接頭辞は変更できる

この接頭辞は任意の文字列に変更する事ができます。変更する理由としては

・「サーバー移転」の際に移転元と移転先の接頭辞を合わせる必要がある。
・デフォルトの接頭辞「wp_」だと誰にでもわかる文字列なのでセキュリティ面でリスクを抑えるために任意の文字列に変更したい。
よく挙げられるのはこの2つでしょう。接頭辞を変更するにはプラグインを使用する方法と、先ほど書いた「wp-config.php」を直接編集しMySQLデータベースをSQLで操作するという方法があります。今回直接編集するという方法をとります。

【SQL】

SQL (エスキューエル / Structured Query Language) はデータベースを制御するためのデータベース言語です。日本語だと「構造化問い合わせ言語」となります。

データべーステーブルの設定変更、更新、削除などの操作を行う事ができます。またSQLは世界的に標準化されているので様々な種類のデータベースを操作するための言語として使う事ができ、SQLを習得してしまえばデータベースの操作で困る事はないといいます。

SQLによるデータベースに対しての要求をクエリーと呼びます。

接頭辞を変更する際に使える文字列は英数字と「_」です。なのでなにもwpにこだわらなくても「sushi_」「kani_」「udon_5」とかにする事もできます。

※ 手動の場合は今後一切WP管理画面にログイン出来なくなる可能性があるので自己責任でお願いします。もしわからない場合はプラグインを推奨します。

「wp-config.php」から接頭辞を変更する

prefix

FTPソフトを使い「wp-config.php」から、例として「$table_prefix = ‘wp_’;」のところ「wp_」を「example_」と変更します。属性のところに「書込」の権限がなかったので変更しました。変更し終わったら後で忘れずに戻しておきます。

prefix2

上書きします。

prefix4

こんな感じになってしまいました。この操作をした時点で変更前の接頭辞に戻したらどうなるのか試してみたらやはりサイトは表示されません。

prefix5

始めて接頭辞を変更する場合は少し焦るかもしれません。FTPを使用した変更に加え、どうやらデータベースにも変更を加える必要があるようです。

データベース

まずはお使いのサーバーなどからphpMyAdminにログインします。

prefix8
phpMyAdmin管理画面に入ったらWordPressで使用しているデータベースを選択→「SQL」を選択します。
SQLではこんな感じの記述をします。右側に接頭辞が一覧表示されているので変更前の接頭辞 (データベースはまだ変更されていない) を参考しながら記述します。

prefix6

プラグインによるテーブルも混じっていれば追加して記述して下さい。

ALTER TABLE wp_commentmeta RENAME TO example_commentmeta;
ALTER TABLE wp_comments RENAME TO example_comments;
ALTER TABLE wp_ewwwio_images RENAME TO example_ewwwio_images;
ALTER TABLE wp_links RENAME TO example_links;
ALTER TABLE wp_options RENAME TO example_options;
ALTER TABLE wp_postmeta RENAME TO example_postmeta;
ALTER TABLE wp_posts RENAME TO example_posts;
ALTER TABLE wp_termmeta RENAME TO example_termmeta;
ALTER TABLE wp_terms RENAME TO example_terms;
ALTER TABLE wp_term_relationships RENAME TO example_term_relationships;
ALTER TABLE wp_term_taxonomy RENAME TO example_term_taxonomy;
ALTER TABLE wp_usermeta RENAME TO example_usermeta;
ALTER TABLE wp_users RENAME TO example_users;

「ALTER TABLE」というのはテーブルの定義を変更する時に用いられるSQLで、テーブルというのはざっくり言うとデータベースでデータをしまっておくための箱です。ちなみに「Alter/オルター = 変更する」という意味になります。

こうしてみるとSQLは英語っぽい記述なのでわりとわかりやすい言語なのかもしれません。ただ、知らないだけで難しい記述もあるかもしれないのでわかりませんが・・。

続けて「実行する」

上記の記述だけでは「この記述だけではエラーですよ」的な感じで表示されます。これは先ほどの更新がエラーになったのではなく追加で記述する必要があるようです。その証拠に左側のテーブル一覧を見ると先ほど記述した接頭辞が反映されています。
続けて下記の例のように記述して追加で実行します。

UPDATE example_options SET option_name = 'wp_user_roles' WHERE option_name = 'wp_user_roles';
UPDATE example_usermeta SET meta_key = 'wp_capabilities' WHERE meta_key = 'wp_capabilities';
UPDATE example_usermeta SET meta_key = 'wp_user_level' WHERE meta_key = 'wp_user_level';

これで完了です。

「このページにアクセスするための十分なアクセス権がありません。」と表示された時の対処法

上のSQL操作で完了したかと思いきや上記のメッセージが表示されWordPressの管理画面にログイン出来なくなりました。おそらく以前の接頭辞のまま変更されていない部分があるのでしょう。

「example_options」と「example_usermeta」が変更されていない!

管理画面にログイン出来ないし詰んだかと思いましたが、どうやら「example_options」と「example_usermeta」のテーブルの中のデータに古い接頭辞が残ったままなのでうまく整合性がとれていないとの事。

これらも変更する必要があります。ちなみに最初はわかりませんでしたが、phpMyAdminはデフォだと30件までしか表示されないようです。表示件数を変更するかページを送って下さい。

■「example_options」変更した箇所

  • 「wp_user_roles」→「example_user_roles」

■「example_usermeta」変更した箇所

  • 「wp_capabilities」→「example_capabilities」
  • 「wp_user_level」→「example_user_level」
  • 「wp_dashboard_quick_press_last_post_id」→「example_dashboard_quick_press_last_post_id」
  • 「wp_user-settings」→「example_user-settings」
  • 「wp_user-settings-time」→「example_user-settings-time」
  • 「wp_media_library_mode」→「example_media_library_mode」

この記事のまとめ

接頭辞を変更するのは簡単だとおもっていましたが、データベースをいじ事など今までないのに加え、変な画面が表示されてしまったり管理画面にログイン出来ないわで思わず「詰んでしまったか・・」と思ってしまう場面もあり久々に結構ヒヤヒヤもんでした。

ただ、一度やり方さえわかってしまえばあとはなんなく出来ると思います。

関連記事




この記事が気に入ったら
いいね!しよう

最新情報をお届けします

Twitterでめちゃログをフォローしよう!