こちらの記事でwp-config.phpの初期設定について記述しましたが、うっかりテーブルの接頭辞をデフォルトのままで運用していたりしませんか?はい、私がそうです。
デフォルトのままではセキュリティの面で不安があるので、テーブルの接頭辞をインストール後に変更しました。その手順です。
1.wp-config.phpを編集
wp-config.phpを検索し、$table_prefixの値を変更します。
1 |
$table_prefix = '<新しい接頭辞>'; |
2.データベースのバックアップ
テーブル名を変更し、テーブルの値を更新するので念の為、バックアップを取りましょう。備えあれば憂い無し、です。
ターミナルからmysqlコマンドで取ってもいいですし、稼働しているWordPressの管理画面のDatabaseから取っても構いません。お好みでどうぞ。
3.データベースのテーブル名を変更
まず既存のテーブル名を確認します。
WordPressの管理画面のDatabaseから確認できます。
私はターミナルからmysqlコマンドラインツールを用いて、以下のようにしてテーブル名をファイルに保存し、確認しました。後程、更新クエリを作成する為に用いる狙いもありました。
1 |
mysql -u <ユーザー名> -p -e 'show tables;' <データベース名> > tables.txt |
インストールしているプラグインによってテーブル数は増加します。必ずお使いのデータベースのテーブル名を確認して下さい。
次にテーブル名の変更を行います。私の環境では、15個のテーブルが存在していましたので、以下のファイルを作成し、alter.sqlという名で保存しました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
ALTER TABLE wp_commentmeta RENAME TO <新しい接頭辞>commentmeta; ALTER TABLE wp_comments RENAME TO <新しい接頭辞>comments; ALTER TABLE wp_ewwwio_images RENAME TO <新しい接頭辞>ewwwio_images; ALTER TABLE wp_hugeit_lightbox RENAME TO <新しい接頭辞>hugeit_lightbox; ALTER TABLE wp_links RENAME TO <新しい接頭辞>links; ALTER TABLE wp_options RENAME TO <新しい接頭辞>options; ALTER TABLE wp_postmeta RENAME TO <新しい接頭辞>postmeta; ALTER TABLE wp_posts RENAME TO <新しい接頭辞>posts; ALTER TABLE wp_structuring_markup RENAME TO <新しい接頭辞>structuring_markup; ALTER TABLE wp_term_relationships RENAME TO <新しい接頭辞>term_relationships; ALTER TABLE wp_term_taxonomy RENAME TO <新しい接頭辞>term_taxonomy; ALTER TABLE wp_termmeta RENAME TO <新しい接頭辞>termmeta; ALTER TABLE wp_terms RENAME TO <新しい接頭辞>terms; ALTER TABLE wp_usermeta RENAME TO <新しい接頭辞>usermeta; ALTER TABLE wp_users RENAME TO <新しい接頭辞>users; |
そして、以下のコマンドでテーブル名を更新しました。
1 |
mysql -u <ユーザー名> -p -e 'show tables;' <データベース名> < alter.sql |
4.テーブルに保存されたテーブル名を更新
wp_optionsとwp_usermetaテーブルにテーブル名が保存されています。この保存されているテーブル名を新しいテーブル名に変更する必要があります。
先程と同様にクエリを作成し、update.sqlファイルに保存しました。
1 2 3 |
UPDATE <新しい接頭辞>test_options SET option_name = '<新しい接頭辞>test_user_roles' WHERE option_name = 'wp_user_roles'; UPDATE <新しい接頭辞>test_usermeta SET meta_key = '<新しい接頭辞>test_capabilities' WHERE meta_key = 'wp_capabilities'; UPDATE <新しい接頭辞>test_usermeta SET meta_key = '<新しい接頭辞>test_user_level' WHERE meta_key = 'wp_user_level'; |
古いテーブル名で検索し、新しいテーブル名で更新するだけです。
以上で接頭辞の変更は完了です。
よっぽどセキュリティがザルで無い限り、大丈夫とは思いますが、念の為、変更しておいた方が安心できます。デフォルトの接頭辞のまま運用されらっしゃる方、変更はそれ程難しくはありませんので、検討してチャレンジしてみて下さい。
宮崎県在住。
プログラムを書いて暮らしています。趣味はルアーフィッシング、ギター。