興味のある所からお読み下さい
データベースの接頭辞を変更する手順
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文を作成します。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
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_」になります。
1 2 3 4 5 6 |
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_‘;」に変更し、ブログページや管理画面が正常に開けるか、確認します。