【WordPress】接頭辞とは?接頭辞を変更すべき2つの理由を解説!

【WordPress】接頭辞とは?変更方法とログイン出来なくなってしまった時の対処法

今回の記事はWordPressの接頭辞(せっとうじ)についての解説です。

接頭辞とは、WordPressをインストールするとデータベース内に作られる「wp_」という文字列を言います。
1つのレンタルサーバー内で複数のWordPressを運営している場合は「wp2_」「wp3_」と作られていきます。

案内人2接頭辞について解説する内容がこちら

  • 接頭辞とは?
  • 接頭辞を変更すべき2つの理由
  • エラーが出てしまった(ログインできない)場合の対処法

この接頭辞はできることなら変更した方がいいです。理由は以下になります。

接頭辞を変更すべき2つの理由

  1. 「サーバー移転」の際に移転元と移転先の接頭辞を合わせる必要がある
  2. デフォルトの接頭辞「wp_」だとセキュリティ面のリスクがある

今回の記事を最後までご覧になれば、WordPressの接頭辞について理解することができるでしょう。
それでは、始めていきましょう。

目次

接頭辞とは?

インターネット・テクノロジー - イメージ画像

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

接頭辞の確認方法

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

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

接頭辞を変更するべき2つの理由

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

  1. 「サーバー移転」の際に移転元と移転先の接頭辞を合わせる必要がある
  2. デフォルトの接頭辞「wp_」だとセキュリティ面のリスクがある


よく挙げられるのはこの2つでしょう。接頭辞を変更するにはプラグインを使用する方法と、先ほど書いた「wp-config.php」を直接編集しMySQLデータベースをSQLで操作するという方法があります。
今回は、直接編集するという方法をとります。

【SQL】

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

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

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

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

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

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

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



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

WordPres データベーステーブルの接頭辞 - 「$table_prefix = ‘example_’;」

変更したら「上書き」→「OK」を選択です。

WordPress 接頭辞設定 - 「/wp-config.php」を上書き

エラー発生


すると自分のブログにログインできずこのような感じになってしまいました。
変更前の接頭辞に戻したらどうなるのか試してみましたが、やはりブログは表示されません。

WordPress | 接頭辞を変更するもサイトが表示されない

このようなトラブル発生で、始めて接頭辞を変更する場合はかなり焦るかもしれません。
対処法としてはFTPを使用した変更に加え、どうやらデータベースにも変更を加える必要があるようです。

ジョン齊藤

この時は、ブログが表示されないので焦りましたが、冷静に対処しました

データベース

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

phpMyAdmin(ピーエイチピーマイアドミン)は、ブラウザ上でMySQL(データベース)を操作するための管理ツール。自分でPCにインストールする方法もありますが、レンタルサーバーの管理画面からログインして操作するのが一般的です。

データベース - phpMyAdminにログイン



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

phpMyAdmin管理画面から「SQL」を選択する

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

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」

まとめ

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

ただ、一度やり方さえわかってしまえばあとはなんなく出来ると思います。
同じようにエラーが起きてしまった場合は試してみて下さい。



よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次