WordPressデータベースのテーブル接頭辞を変更することは、サイトのセキュリティを高めるためのシンプルかつ効果的な方法です。デフォルトでは、WordPressはテーブル接頭辞として*wp_*を割り当てており、これがSQLインジェクション攻撃を狙うハッカーの一般的な標的となっています。この接頭辞を変更することで、こうした脅威からデータベースを守ることができます。
このガイドでは、WordPressデータベースのテーブル接頭辞を安全に変更する3つの異なる方法について解説します。
WordPressサイトでのあらゆる操作はデータベースと密接に結びついています。

なぜWordPressのテーブル接頭辞を変更するのか?
デフォルトのwp_テーブル接頭辞を変更することには、次のような利点があります:
- SQLインジェクション攻撃のリスクを減らす
- 攻撃者がテーブル名を推測しにくくする
- WordPressサイトに追加のセキュリティ層を加える
始める前に:データベースをバックアップする
WordPressデータベース接頭辞の変更は重要な作業であり、必ずしも簡単とは限りません。WordPressテーブル接頭辞を変更する際に、サイトを壊さないように注意する必要があります。
データベース接頭辞を変更する前に、ステージングサイトで作業することを推奨します。そうすれば、更新がうまくいくかを十分に確認し、DB接頭辞を変更した後にデータ損失のリスクなく安全にステージングサイトを本番サイトにプッシュすることができます。ステージングサイトはライブサイトのコピーなので、さまざまな変更やテストを行い、ワンクリックでそれらの変更を本番に反映できます。
WP STAGINGを使えば、無料でステージングサイトを作成できます。
WordPressのインストール時に最もよくある間違いの一つは、WordPressデータベースの接頭辞の変更を忘れることで、結果として攻撃者が自動化されたSQLインジェクションを実行できる状態になってしまいます。そのため、サイトをハッキングから守るためには予防策を講じることが極めて重要です。
WordPressデータベースの接頭辞を変更する方法
WordPressデータベースの接頭辞を安全にリネームするには、次のステップバイステップガイドに従ってください。
WordPressサイトのデータベース接頭辞を変更・リネームするには、3つの方法があります:
- プラグインを使ってデータベースのテーブル接頭辞を変更する。
- AdminerでデータベースクエリーによりWordPressデータベース接頭辞をリネームする。
- PhpMyAdminでデータベースクエリーによりWordPressデータベース接頭辞をリネームする。
Contents
方法1:プラグインを使ってデータベースのテーブル接頭辞を変更する
プラグインを使ってデータベース接頭辞を変更できます。WordPressで実行するための簡単な手順は以下のとおりです。
- WordPressダッシュボードにアクセスします。
- 「プラグイン」タブに移動し、「新規追加」をクリックします。
- WordPressプラグインリポジトリでBrozzme DB Prefix & Tools Add-onsを検索します。
- 「今すぐインストール」ボタンをクリックして、サイトにBrozzme DB Prefix & Tools Add-onをインストールします。
- 「有効化」ボタンをクリックして、このプラグインを有効化します。

プラグインが有効化されたので、すぐにWordPressデータベース接頭辞の変更に取りかかれます。
- 「ツール」に移動して「DB Prefix」をクリックします。データベースの現在の接頭辞が表示され、新しいものに変更できます。

wp-config.phpファイルが書き込み可能でない場合、このプラグインはwp-config.phpファイル内のデータベース接頭辞を変更できないため、エラー通知が表示されます。
「Change DB Prefix」ボタンをクリックすれば完了です。
方法2:Adminerを使ってデータベースSQLクエリーでWordPressデータベース接頭辞をリネームする
wp-config.php設定ファイルでテーブル接頭辞を変更する
WordPressディレクトリのルートフォルダーにあるwp-config.phpファイル内のテーブル接頭辞の値を変更します。
wp-config.phpファイルを編集するには、Filezillaやその他のFTPクライアントを使ってFTPまたはSFTPでログインできます。FTPの詳細はcPanelで確認できます(ホスティングによっては、cPanelを持たず独自にカスタマイズされたパネルを使用している場合もあります)。
wp-config.phpファイル内のこの行を探します:
$table_prefix = 'wp_testing123_';


接頭辞には数字、英字、アンダースコアのみ使用できます。wp-config.phpファイルを変更したら、保存してください。
データベースのテーブルをリネームする
Adminerを使用している場合、左上の角にSQLコマンドボタンがあります。そのボタンを選択してください。

以下のSQLクエリーは、既存のWordPressサイトのデータベースのWordPressテーブル接頭辞を変更するために使用できます。
SETプロパティを必要に応じて更新してください:
- データベース名
- oldprefix_
- newprefix_
これがそのSQLクエリーです:
SET @database = "<strong>databasename</strong>";
SET @oldprefix = "<strong>oldprefix_</strong>";
SET @newprefix = "<strong>newprefix_</strong>";
SELECT
concat(
"RENAME TABLE ",
TABLE_NAME,
" TO ",
replace(TABLE_NAME, @oldprefix, @newprefix),
';'
) AS "SQL" FROM information_schema.TABLES WHERE TABLE_SCHEMA = @database;クエリーをカスタマイズすると、次のような結果が得られます:

そのクエリーを実行すると、結果として次のような追加のクエリーが得られます:
RENAME oldprefix_options to newprefix_options;
RENAME oldprefix_users to newprefix_users;
これらのクエリーをコピーし、もう一度実行して、新しいテーブル名にリネームしてください。

usermetaテーブルの接頭辞をリネームする
テーブルをリネームした後、以下のクエリーを使って*_usermetaおよび*_optionsテーブル内のいくつかの値も置換する必要があります。
ハイライトされた文字列の更新を忘れないでください。
*_usermetaテーブル内の値を置換するには、このクエリーを使用してください:
UPDATE `newprefix_usermeta`
SET meta_key = REPLACE(meta_key, 'oldprefix_', 'newprefix_')
WHERE meta_key LIKE 'oldprefix_%';
wp_optionsテーブルの接頭辞を更新する
最後のステップは、*_optionsテーブル内の値を置換することです。
このクエリーを使用してください:
UPDATE wp_options SET option_name = replace(option_name, 'wp_', 'new_') WHERE option_name LIKE 'wp_%';
以上です。
方法3:PHPmyAdminを使ってデータベースSQLクエリーでWordPressデータベース接頭辞をリネームする
wp-config.phpでテーブル接頭辞を変更する。
WordPressディレクトリのルートフォルダーにあるwp-config.phpファイル内のテーブル接頭辞を変更します。
wp-config.phpファイルを編集するには、Filezillaやその他のFTPクライアントを使ってFTPまたはSFTPでログインできます。FTPの詳細はcPanelで確認できます(ホスティングによっては、cPanelを持たず独自にカスタマイズされたパネルを使用している場合もあります)。
wp-config.phpファイル内のこの行を確認してください。
$table_prefix = 'wp_testing123_';
接頭辞には数字、英字、アンダースコアのみ使用できます。wp-config.phpファイルを変更したら、保存してください。
データベースのテーブルをリネームする
cPanelを使用してPhpMyAdminにアクセスしていると仮定します。左側にデータベースが表示されます。cPanelを使用していない場合は、ホスティング会社に連絡してサイトのデータベースにアクセスしてください。
wp-config.phpファイルで指定したテーブル接頭辞を変更したいデータベースを選択し、以下の手順を実行してください。
- データベースを選択する。
- 「すべてチェック」チェックボックスをオンにして、すべてのテーブルを選択する。
- ドロップダウンをクリックして「テーブル接頭辞を置換」を選択する。

- 古い接頭辞を新しい接頭辞に置き換える。

新しい接頭辞を入力した後、「続行」をクリックすると、データベース内の接頭辞が変更されます。
Optionsテーブルの接頭辞をリネームする
このクエリーを使ってoptionsテーブル内のwp_接頭辞を検索します。
SELECT * FROM `wp_testing123_options` WHERE `option_name` LIKE '%wp_%'古い接頭辞をすべて新しい接頭辞に置き換えます。

Usermetaテーブルの接頭辞を更新する
usermetaテーブルでwp_を接頭辞として検索し、このクエリーで置き換える必要があります。
SELECT * FROM `wp_testing123_usermeta` WHERE `meta_key` LIKE '%wp_%'
別の選択肢として、データベースクエリーを使ってデータベース接頭辞を変更したい場合、この単一のクエリーで実現できます。
既存のWordPressサイトのデータベースのWordPressテーブル接頭辞を変更したい場合は、次のSQLクエリーを使用できます:
SET @database = "database_name";
SET @old_prefix = "old_prefix_";
SET @new_prefix = "new_prefix_";
SELECT concat "RENAME TABLE ", TABLE_NAME, " TO", replace(TABLE_NAME, @old_prefix, @new_prefix),';') AS "SQL" FROM information_schema.TABLES WHERE TABLE_SCHEMA = @database;このクエリーは、すべてのテーブル接頭辞を新しいものにリネームするために使える別のSQLクエリーを生成します。
その後、以下のクエリーを使ってwp_usermetaおよびwp_optionsテーブル内のいくつかの値も置換する必要があります。
UPDATE `wp_testing123_usermeta`
SET meta_key = REPLACE(meta_key, 'wp_', 'new_')
WHERE meta_key LIKE 'wp_%';
UPDATE wp_options SET option_name = replace(option_name, 'wp_', 'new_') WHERE option_name LIKE 'wp_%';以上です。
これがデータベース接頭辞を変更する手動の方法です。
テーブル接頭辞のリネーム後にWordPress管理ダッシュボードにログインできない
これは、ユーザーがWordPressテーブル接頭辞をリネームする際に最もよく遭遇するエラーです。
これらすべてのカラム名の接頭辞を更新し、見落としがないことを確認してください:
wp_optionテーブル内
- wp_user_roles
wp_user_metaテーブル内
- wp_capabilities
- wp_user_level
これらのカラムの接頭辞をテーブル名と同じ接頭辞にリネームすると、再びWordPressサイトにログインできるようになります。
まとめ
WordPressテーブル接頭辞の変更は、シンプルでありながら効果的なセキュリティ対策です。phpMyAdmin、プラグイン、SQLスクリプトのいずれを使う場合でも、変更を加える前に必ずデータベースのバックアップを取りましょう。この小さな調整が、WordPressサイトの安全性を大きく高めることにつながります!