WordPressのデータベース内各テーブル名には、その始まりに決まった文字列が付与されています。
例えばwp_options
やwp_posts
というテーブル名を例に挙げますと「wp_」この文字列部分をテーブル接頭辞(テーブルプレフィックス)と言います。
このテーブル接頭辞ですが、デフォルトだと「wp_」となっており、セキュリティの観点から良くないとされています。
「インストール時に変更できたけど、デフォルトのままインストールしちゃった…」そんな時のために、今回の記事では途中から変更する方法について紹介していきたいと思います!
※実作業前にはDBのバックアップをお忘れなく
コンテンツ一覧
SQLコマンドでテーブル名変更
phpMyAdminをはじめとするデータベース管理ツールや、コマンドで直接など、SQLコマンドが実行できる環境下にて、テーブル名の変更をします。
例)wp_
からEXAMPLE_
という接頭辞に変更する場合
ALTER TABLE wp_commentmeta RENAME TO EXAMPLE_commentmeta; ALTER TABLE wp_comments RENAME TO EXAMPLE_comments; 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;
プラグインの使用状況によってテーブルは増えると思いますので、上記コマンドを例に適宜書き加えてください。
テーブル内にある変更前の接頭辞を手動変更
テーブル名を変更した段階でwp-config.phpを書き換えると、サイト自体は問題なく表示されるのですが、このままだとまだダッシュボードに入れない状態なのです。
原因としましては、テーブル内に変更前の接頭辞が使われたデータが有るためなのです。
以下が対象テーブルとなりますので、確認してみましょう。
- EXAMPLE_options
- EXAMPLE_usermeta
wp_
からEXAMPLE_
という変更だと仮定して、それぞれ以下のように手動で調整を行います。
EXAMPLE_options
変更前 | 変更後 |
---|---|
wp_user_roles | EXAMPLE_user_roles |
EXAMPLE_usermeta
変更前 | 変更後 |
---|---|
wp_capabilities | EXAMPLE_capabilities |
wp_dashboard_quick_press_last_post_id | EXAMPLE_dashboard_quick_press_last_post_id |
wp_user_level | EXAMPLE_user_level |
この他にも環境によっては、変更前の接頭辞が残っている可能性がありますので、必要に応じて変更を行ってください。
wp-config.phpの書き換え
後はwp-config.phpの設定をwp_
からEXAMPLE_
に書き換えるだけですね。
$table_prefix = 'wp_'; ↓ $table_prefix = 'EXAMPLE_';
構築途中やリリース時など、途中で接頭辞を変えたい場合にぜひお試しください!
コメントする