WordPressのデータベース(MySQL)のプリフィックスを「wp_」から変更する

「WordPressはPHPというプログラム言語でMySQLというデータベースを使って実行されるソフトウェア」
と言われているように、WordPressはMySQLというデータベースに投稿した記事などのデータは保存されます。

そのデータベースでは、それぞれテーブルごとに分類分けされています。
そのテーブル名にはプリフィックス(接頭辞)がつけられています。

画像では「wp_」がプリフィックス(接頭辞)です。
この接頭辞が「wp_」だと、「あっ、こいつWordPress使ってる」と分かってしまい、攻撃の対象になりやすくなります。

なので、プリフィックスは「wp_」以外を使いましょう。

インストール時にプリフィックス(接頭辞)を「wp_」以外にする。

インストール時にデータベース情報を入力する画面が出ますが(自力でwp-config-sample.phpを編集してwp-config.phpを作っている人は出ない)、
この時プリフィックス(接頭辞)を入力する欄があります。

デフォルトで「wp_」になっているため、「wp_」を使う人が多いのですが、ここをデフォルト以外の値にします。
画像では「wpcms_」にしてます。

このように編集してWordPressをインストールすると、MySQLにもプリフィックス(接頭辞)は編集されてデータベースが作られます。

とはいうものの、レンタルサーバーの自動インストールを使う場合、プリフィックス(接頭辞)をインストール時に編集できないものもあります。

この場合は、一度「wp_」でインストールしておき、インストール後に「wp_wp_」以外に変更します。
変更方法は2つあります。

・手動で変更する
・プラグインを使って自動で変更する

もちろんプラグインを使えば自動で変更なので簡単ですが、手動でもさして難しくないのでここでは手動で変更する方法で解説します。

データベースのプリフィックス(接頭辞)を手動で変更する

手動で編集するWordPressをインストールしたディレクトリをFTPソフトなどで開くと、中に「wp-config.php」というファイルがあります。


この「wp-config.php」ファイルはでも説明したように、データベースなどの設定が書かれています

「wp-config.php」ファイルをテキストエディタで開いてください。
中央(72行目あたり)に
$table_prefix = ‘wp_’;
というところがあります。

ここの「’wp_’」を「’wpcms_’」と変更し上書き保存します。

$table_prefix = ‘wpcms_’;

 

(保存する前に元の「wp-config.php」を「wp-config0718.php」などと名前の変更をしておくと最悪の場合元の状態までは戻せます)

 

データベースのテーブル名を変更する

データベースのテーブル名「wp_」から「wpcms_」に変更します。
phpMyadminを使って一括変換します。

①以下のファイル(wp-prefix-table.txt)をダウンロードしてください。

wp-prefix-table

ダウンロードした「wp-prefix-table.txt」をテキストエディタ(TeraPad サクラエディタ miなど)で開きます。

以下のようになっています。
wp-prefix-table.txt

ALTER TABLE wp_commentmeta RENAME TO wpcms_commentmeta;
ALTER TABLE wp_comments RENAME TO wpcms_comments;
ALTER TABLE wp_links RENAME TO wpcms_links;
ALTER TABLE wp_options RENAME TO wpcms_options;
ALTER TABLE wp_postmeta RENAME TO wpcms_postmeta;
ALTER TABLE wp_posts RENAME TO wpcms_posts;
ALTER TABLE wp_termmeta RENAME TO wpcms_termmeta;
ALTER TABLE wp_terms RENAME TO wpcms_terms;
ALTER TABLE wp_term_relationships RENAME TO wpcms_term_relationships;
ALTER TABLE wp_term_taxonomy RENAME TO wpcms_term_taxonomy;
ALTER TABLE wp_usermeta RENAME TO wpcms_usermeta;
ALTER TABLE wp_users RENAME TO wpcms_users;

 

②phpMyadminを使いますのでブラウザでphpMyadminを開き、変更するデータベースを表示させます。
(phpMyadminの開き方は、レンタルサーバーによって違いますので、そちらを参照ください)

おそらく現在、以下のように「wp_」で始まるテーブルが12個あると思いますので、これを「wpcms_」に変更します。

③左から2つ目のタブの「SQL」をクリックします。

④真ん中のエリア内にwp-prefix-table.txtの中身をコピペします。
(wpcms_以外に変更したい場合は、「RENAME TO wpcms_」の「wpcms_」の部分を希望の文字列に変えてください。)

⑤Goをクリックします

エラーが出なければOKです。

テーブル一覧を見ると「wpcms_」に変わってますね。

データベース内のレコードを中身を変更

最後にテーブル内のレコードを中にも「wp_」がありますので、それを変更します。

①以下のファイル(wp-prefix-record.txt)をダウンロードしてください。

wp-prefix-record

ダウンロードした「wp-prefix-record.txt」をテキストエディタ(TeraPad サクラエディタ miなど)で開きます。

以下のようになっています。
wp-prefix-record.txt

UPDATE wpcms_options SET option_name = ‘wpcms_user_roles’ WHERE option_name = ‘wp_user_roles’;
UPDATE wpcms_usermeta SET meta_key = ‘wpcms_capabilities’ WHERE meta_key = ‘wp_capabilities’;
UPDATE wpcms_usermeta SET meta_key = ‘wpcms_user_level’ WHERE meta_key = ‘wp_user_level’;

②さきほどのphpMyadminを使いますのでブラウザでphpMyadminを開き、変更するデータベースを表示させます。
(phpMyadminの開き方は、レンタルサーバーによって違いますので、そちらを参照ください)

③左から2つ目のタブの「SQL」をクリックします。

④真ん中のエリア内にwp-prefix-record.txtの中身をコピペします。
(wpcms_以外に変更したい場合は、「wpcms_」の部分を希望の文字列に変えてください。)

⑤Goをクリックします

エラーが出てなければOKです。

では、URLにアクセスして表示させてみましょう。

エラー出てなければOKです。

 

ね!簡単でしょ!!セキュリティ対策のためにも「wp_」以外のものを使いましょう。

 

※プラグインの追加などでテーブルが増やされている場合はそちらにも変更箇所が出る場合にもあります。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください