PC、ゲーム、デジタル機器などの初心者向けの話題や小技などをつらつらと……

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Loading...

WordPressデータベースのテーブル接頭語の変更を試みる

 先日取り合えずローカル環境へのインストールが完了したWordPress。これから本格的にWordPressサイト構築に入っていくが、その前に気になっているのがテーブル接頭辞(prefix [プレフィックス])。

 というのも今回WordPressのローカル環境構築にはBitnamiを使用したが、Bitnamiを使用した場合データベース設定の大半が自動化されるため大変便利ではあるが、同時にテーブル接頭辞の設定も全て自動化されデフォルト設定のままでのインストールとなってしまうため、このままではセキュリティ的に大変よろしくない。
 また今後WordPressサイトを複数構築・管理する場合、ひとつのデータベースを共有しようとするならこのテーブル接頭辞の変更は必須となってくる等、セキュリティ面以外でもテーブル接頭辞の変更は行った方が色々と便利でもある。

 そこで本格的なWordPressサイト構築に入る前に、WordPressデフォルトのテーブル接頭辞「wp_」を独自のテーブル接頭語を変更してみようかと。

 テーブル接頭辞を変更する方法は、基本的に以下の2種類がある。

  • プラグインを用いた変更
  • 手動によるデータベース及びwp-cpnfig.phpの記述変更

 プラグインを用いた変更が最も手軽かつ簡単だが、プラグイン自体に脆弱性等の問題があるものや、動作の遅延に繋がるものもあると聞くので、今回はデータベースの勉強も兼ねて手動で変更作業を行うことに。

 手動でWordPressのデータベーステーブル接頭辞を変更する場合、手順は以下のようになる。

  • phpMyAdminからデータベースのテーブル接頭辞を、SQLを用いて一括修正
  • wp-config.php内の「$table_prefix」(接頭辞指定)部分を書き換える

 wp-config.phpの書き換えはともかくデータベースに関してはまるで素人なので、ネット上で色々と参考にしながら修正を加えたので、参考にしたサイト等も併せて明記しておく。

 ちなみにこれから行う作業の前にWordPressの各データ及び、特にデータベースを必ずバックアップすること。

 「推奨」ではなく「必ず」。そうでないと最悪全アンインストール後、ゼロからの再作業の可能性があるため要注意。

phpMyAdminを開き、データベースの確認

 まずはphpMyAdminを開き、現在のデータベースの状態を確認する。

150211_01.jpg

Bitnamiを用いてローカルインストールした場合、データベースの場所は「bitnami_wordpress」となっている。内部を見てみると、全テーブルの接頭辞が全てWordPressデフォルトの「wp_」となっている。

 今回はこのデフォルトのテーブル接頭辞「wp_」を、任意の接頭辞(使用できるのは半角英数字と下線のみ、文字数は長すぎない方が良いとのことなので、ここでは仮に「new_」とする)に変更していく。
 注意したいのはデフォルト接頭辞「wp_」が使用されている部分は各テーブルだけでなく、テーブル内の各データにも使用されている箇所が複数あるため、これら全てを修正しないとエラーとなってしまうこと。具体的には、

  • 「bitnami_wordpress」直下の全テーブル
  • 「wp_options」テーブル内「option_name」フィールドの各データ
  • 「wp_usermeta」テーブル内「meta_key」フィールドの各データ
  • プラグインを追加していた場合、そのプラグイン独自のテーブル及び内部のデータ

 などがある。今回は余計なプラグインを導入する前のWordPressインストール直後での作業なのでプラグイン独自のテーブルのことは考えなくても良い。
 しかししばらくWordPressを運営した後での変更になるとさらに手間が増えるため、テーブル接頭辞の変更は可能な限り早い方が面倒がなくていいかと。

 それではまずデータベースのテーブル接頭辞変更を、SQL文でのクエリで行っていく。

SQL文を用いてテーブル接頭辞を変更する

 SQL文を用いてのテーブル接頭辞変更作業は、2回に分けて行う。まず1回目は「bitnami_wordpress」直下の各テーブルの接頭辞を一括変更する。変更が必要なテーブルは以下の11個。

  • wp_commentmeta
  • wp_comments
  • wp_links
  • wp_options
  • wp_postmeta
  • wp_posts
  • wp_terms
  • wp_term_relationships
  • wp_term_taxonomy
  • wp_usermeta
  • wp_users

 これらテーブルの接頭辞を変更するのに使用したのは以下のSQL文。

ALTER TABLE wp_commentmeta RENAME TO new_commentmeta;
ALTER TABLE wp_comments RENAME TO new_comments;
ALTER TABLE wp_links RENAME TO new_links;
ALTER TABLE wp_options RENAME TO new_options;
ALTER TABLE wp_postmeta RENAME TO new_postmeta;
ALTER TABLE wp_posts RENAME TO new_posts;
ALTER TABLE wp_terms RENAME TO new_terms;
ALTER TABLE wp_term_relationships RENAME TO new_term_relationships;
ALTER TABLE wp_term_taxonomy RENAME TO new_term_taxonomy;
ALTER TABLE wp_usermeta RENAME TO new_usermeta;
ALTER TABLE wp_users RENAME TO new_users;

 phpMyAdmin画面で「SQL」タブを選択し、上記SQL文を入力後「クエリ実行」をクリック。これで各テーブルの接頭辞をデフォルトの「wp_」から任意の接頭辞「new_」に変更完了。

 続いて「options」テーブル(変更後は「new_options」)と「usermeta」テーブル(変更後は「new_usermeta」)内データの接頭辞変更のためのSQL文を実行する。変更が必要なデータは、以下の6個。

  • 「options」テーブル「option_name」フィールド内 : wp_user_roles
  • 「usermeta」テーブル「meta_key」フィールド内 : wp_capabilities
  • 「usermeta」テーブル「meta_key」フィールド内 : wp_user_level
  • 「usermeta」テーブル「meta_key」フィールド内 : wp_dashboard_quick_press_last_post_id
  • 「usermeta」テーブル「meta_key」フィールド内 : wp_user-settings
  • 「usermeta」テーブル「meta_key」フィールド内 : wp_user-settings-time

これらデータの接頭辞を変更するのに使用したのは以下のSQL文。

UPDATE new_options SET option_name = 'new_user_roles' WHERE option_name = 'wp_user_roles';
UPDATE new_usermeta SET meta_key = 'new_capabilities' WHERE meta_key = 'wp_capabilities';
UPDATE new_usermeta SET meta_key = 'new_user_level' WHERE meta_key = 'wp_user_level';
UPDATE new_usermeta SET meta_key = 'new_dashboard_quick_press_last_post_id' WHERE meta_key = 'wp_dashboard_quick_press_last_post_id';
UPDATE new_usermeta SET meta_key = 'new_user-settings' WHERE meta_key = 'wp_user-settings';
UPDATE new_usermeta SET meta_key = 'new_user-settings-time' WHERE meta_key = 'wp_user-settings-time';

 上記SQL文入力後クエリ実行。これで「options」テーブル内「option_name」フィールドにあるデータと、「usermeta」テーブル内「meta_key」フィールドにあるデータのテーブル接頭辞をデフォルトの「wp_」から任意の接頭辞「new_」に変更完了。

 これでphpMyAdminからのデータベースのテーブル接頭辞の変更作業は全て終了。次はwp-config.php内の記述変更作業を行っていく。

 ちなみに上記で紹介したSQL文によるテーブル接頭辞の変更の方法及び手順は、以下のサイトを参考にさせていただいた。

wp-config.phpの書き換えを行う

 データベースのテーブル接頭辞の変更が完了したら、最後はwp-config.php内の接頭辞指定部分を変更した任意の接頭辞(ここでは「new_」)に変更すれば全作業は終了となる。

 環境にもよるが、基本的にwp-config.phpは wordpress > htdocs 内にあるので、それをメモ帳等で開き、下記該当箇所を任意の接頭辞に変更する。

$table_prefix  = 'new_';

 これでWordPress管理画面を開き何もエラー等が起こらなければ、無事WordPressのデータベースのテーブル接頭辞変更作業は全て完了となる。
 万が一管理画面を開き、「このページにアクセスするための十分なアクセス権がありません」といったエラーが出た場合は、

  • 新しい任意の接頭辞は半角英数字と下線のみで記述しているか
  • 新しい任意の接頭辞の文字数が長過ぎないか
  • テーブル接頭辞変更のためのSQL文にミスはないか
  • データベースの余計な箇所まで手を加えていないか
  • テーブルだけでなく、各テーブル内のデータの接頭辞も変更しているか
  • プラグインを使用している場合、そのプラグインのデータベーステーブルも確認、変更したか
  • wp-config.php内の接頭辞指定部分を変更したか、あるいは変更を間違えていないか

 などを疑い、ひとつひとつ検証してみる。

 なお、どうしても接頭辞変更後WordPressが正常に起動しない場合、最悪全てアンインストールして最初から全作業のやり直しとなってしまう。
 そうした最悪の事態を避けるためにも、くれぐれもデータベースのバックアップ作業は怠らないように。今回に限らず、重要な変更を加える際の事前バックアップは基本中の基本なのをお忘れなく。

 ……ちなみに私は今回、バックアップ忘れました(笑)。何事もなく成功したので良かったようなものの……

 しかし私の場合今回の作業はWordPressインストール直後のため最悪の事態となっても被害は最小限だったので、まぁバックアップは不要っちゃあ不要だったが……



Loading...
コメント
コメントの投稿
【Font & Icon】
管理者にだけ表示を許可する
プロフィール

雪陽炎

Author:雪陽炎
 PCやデジタル機器類いじりの他にも、あれやこれやと趣味を持つ器用貧乏な奈良県民。
 初心者向け兼自身の忘備録としてPC及びデジタル機器関連の情報をまとめてます。

参加ブログランキング

にほんブログ村 PC家電ブログ パソコン・周辺機器へ にほんブログ村 PC家電ブログ 家電・AV機器へ
にほんブログ村 PC家電ブログ PCオーディオへ
人気ブログランキングへ
人気ブログランキングへ
最新記事
スポンサ-ドリンク
最新コメント
最新トラックバック
Amazon
楽天
ブロとも申請フォーム

この人とブロともになる

関連記事Loader

[猫カフェ]futaha

スポンサードリンク
本館/別館サイト
カテゴリ
ブックマーク
最近のチェックリスト / PC関連
最近のチェックリスト / AV関連
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。