WordPress データベーステーブルの接頭辞を変更する方法

スポンサーリンク

データベースの接頭辞を変更する手順

WordPressをインストールした際に、特に何も指定しなければ、作成されるデータベースのテーブルには「wp_」という接頭辞(プレフィックス)が付けられます。このままだと「テーブル名」が特定されてしまうので、セキュリティ上からも好ましくありません。

WordPressを初めてインストールした頃はあまり気にも留めなかったのですが、慣れてくると、同じデータベースにもう1つWordPressをインストールしたいとか、接頭辞を管理し易い名前に変えたいとかの要望がでてきます。

変更の手順は、次の3ステップです。作業前にはいつでも元に戻せるよう、必ずバックアップを取ってから作業してください。

  • 接頭辞を書き換えるSQLの作成
  • データベースの書き換え
  • wp-config.phpの書き換え

接頭辞を書き換えるSQLの作成

テーブルの接頭辞の確認

phpMyAdminにアクセスし、WordPressで利用しているデータベースを選択します。テーブルの接頭辞は、トップページの「構造」タブで確認できます。

WordPressには通常、11個のテーブルがありますが、当サイトはプラグイン WordPress Popular Posts をインストールしているので、2個のテーブルが追加され、計13個のテーブルがあります。

これら13個のテーブルの接頭辞を「wp_s602_1」から「wpnew_」にリネームするSQL文を作成します。

ALTER TABLE wp_s602_1commentmeta RENAME TO wpnew_commentmeta;
ALTER TABLE wp_s602_1comments RENAME TO wpnew_comments;
ALTER TABLE wp_s602_1links RENAME TO wpnew_links;
ALTER TABLE wp_s602_1options RENAME TO wpnew_options;
ALTER TABLE wp_s602_1postmeta RENAME TO wpnew_postmeta;
ALTER TABLE wp_s602_1posts RENAME TO wpnew_posts;
ALTER TABLE wp_s602_1terms RENAME TO wpnew_terms;
ALTER TABLE wp_s602_1term_relationships RENAME TO wpnew_term_relationships;
ALTER TABLE wp_s602_1term_taxonomy RENAME TO wpnew_term_taxonomy;
ALTER TABLE wp_s602_1usermeta RENAME TO wpnew_usermeta;
ALTER TABLE wp_s602_1users RENAME TO wpnew_users;
ALTER TABLE wp_s602_1popularpostsdata RENAME TO wpnew_popularpostsdata;
ALTER TABLE wp_s602_1popularpostssummary RENAME TO wpnew_popularpostssummary;

テーブル内データの接頭辞の変更箇所の検索

テーブル内データにも変更箇所がないかを調べるため、「検索」タブで、接頭辞名「wp_s602_1」でテーブル内を全検索します。

検索結果から、[wp_s602_1options]に1件、[wp_s602_1usermeta]に5件の計6件あることが分かります。

各々の詳細を見るために項目右の「表示」ボタンを押します。テーブル内のどのデータ項目のデータに接頭辞が含まれるかが分かります。

整理すると、

  • [wp_s602_1options] [option_name] の wp_s602_1user_roles
  • [wp_s602_1usermeta] [meta_key] の wp_s602_1capabilities
  • [wp_s602_1usermeta] [meta_key] の wp_s602_1user_level
  • [wp_s602_1usermeta] [meta_key] の wp_s602_1user-settings
  • [wp_s602_1usermeta] [meta_key] の wp_s602_1user-settings-time
  • [wp_s602_1usermeta] [meta_key] の wp_s602_1dashboard_quick_press_last_post_id

の変更が必要です。

これらのデータ項目のデータ内容の接頭辞を「wp_s602_1」から「wpnew_」に置き換える6個のSQL文を作成します。テーブル接頭辞はこの段階ではすでに「wpnew_」にリネームされていますので「wpnew_」になります。

UPDATE wpnew_options SET option_name = 'wpnew_user_roles' WHERE option_name = 'wp_s602_1user_roles';
UPDATE wpnew_usermeta SET meta_key = 'wpnew_capabilities' WHERE meta_key = 'wp_s602_1capabilities';
UPDATE wpnew_usermeta SET meta_key = 'wpnew_user_level' WHERE meta_key = 'wp_s602_1user_level';
UPDATE wpnew_usermeta SET meta_key = 'wpnew_user-settings' WHERE meta_key = 'wp_s602_1user-settings';
UPDATE wpnew_usermeta SET meta_key = 'wpnew_user-settings-time' WHERE meta_key = 'wp_s602_1user-settings-time';
UPDATE wpnew_usermeta SET meta_key = 'wpnew_dashboard_quick_press_last_post_id' WHERE meta_key = 'wp_s602_1dashboard_quick_press_last_post_id';

以上で接頭辞を変更するためのSQL文の作成は完了です。

データベースの書き換え

SQLを実行してテーブルの接頭辞を変更する

トップ画面に戻り、「SQL」タブを選択して、先ほど作成した「テーブルの接頭辞を変更するSQL」を実行します。

実行が終ると完了画面に変わります。すべての行が「返り値が空でした(行数0)」になっていれば正常終了です。

SQLを実行してテーブル内データの接頭辞を変更する

次に、「テーブル内のデータに含まれる接頭辞を変更するSQL」を実行します。

実行が終ると完了画面に変わります。すべての行が「1行変更しました。」になっていれば正常終了です。

以上、正常終了を確認して、データベーステーブルの接頭辞の変更は終わりです。

wp-config.phpの書き換え

最後にWordPressをインストールしたフォルダにある「wp-config.php」内の「$table_prefix」を新しい接頭辞「$table_prefix = ‘wpnew_‘;」に変更し、ブログページや管理画面が正常に開けるか、確認します。

スポンサーリンク