WordPressユーザーに最もお勧めしたいことのひとつは、WordPressデータベースのメンテナンス方法を学ぶことです。
WordPressは、スクリプト言語としてPHP、データベース管理システムとしてMySQLを使って書かれています。WordPressを使うのに、PHPとMySQLを学ぶ必要はありません。
しかし、この2つのごく基本的な理解があれば、トラブルシューティングに役立つだけでなく、WordPressが(裏側で)どのように機能するかについての知識を深めることができる。
この投稿では、初期設定のWordPressデータベーステーブルの紹介を含め、WordPressがどのようにデータベースを使用するかを説明します。また、データベースのバックアップの作成、WordPressデータベースの最適化、WordPressデータベースの修正など、phpMyAdminを使用してWordPressデータベースを管理する方法を紹介します。
WordPressのデータベース管理に関する包括的なガイドですので、ナビゲーションしやすいように目次を追加しました:
- What Is a Database, and How Does WordPress Use it?
- What Is phpMyAdmin?
- How to Access phpMyAdmin
- Understanding WordPress Database Tables
- Managing the WordPress Database Using phpMyAdmin
- Creating a WordPress Database Backup Using phpMyAdmin
- Creating a WordPress Backup Using a Plugin
- Importing a WordPress Database Backup via phpMyAdmin
- Optimizing Your WordPress Database in phpMyAdmin
- Fixing WordPress Issues Using phpMyAdmin
- Reset WordPress Password Using phpMyAdmin
- Adding a New Admin User to WordPress Using phpMyAdmin
- Change a WordPress Username via phpMyAdmin
- Other Useful phpMyAdmin Tricks
- Securing Your WordPress Database
データベースとは何か、WordPressはそれをどのように使うのか?
データベースは、データを整理し検索するためのシステムである。ソフトウェアがプログラム可能な方法でデータを管理することができる。
例えば、WordPressはPHP(プログラミング言語)を使ってデータベースからデータを保存したり取得したりする。
WordPressデータベースに保存される情報には、投稿、ページ、コメント、カテゴリー、タグ、カスタムフィールド、ユーザー、その他のWordPress設定が含まれます。チュートリアルの後半でWordPressデータベースのテーブルについて詳しく説明します。
WordPressを初めてインストールする際、データベース名、ホスティングサービス、ユーザー名、パスワードの入力を求められます。この情報は、wp-config.phpと呼ばれる設定ファイルに保存されます。
インストール中、WordPressはデータベースについて提供された情報を使用してテーブルを作成し、それらのテーブル内に初期設定のインストールデータを保存します。
インストーラ後、WordPressはこのデータベースにクエリーを実行し、サイトや ブログのHTMLページを動的に生成します。
これにより、WordPressは非常に強力になります。なぜなら、作成したいページごとに新しい.htmlファイルを作成する必要がないからです。WordPressはすべてを動的に処理します。
WordPressのデータベースはどこに保存されていますか?
WordPressはデータベース管理システムとしてMySQLを使用しており、WordPressホスティングサービスサーバーにインストールされているソフトウェアです。WordPressのデータベースも同じサーバーに保存されます。
この場所は、ほとんどの共有ホスティングサービス環境ではアクセスできません。しかし、VPSホスティングプランまたは専用サーバーを使用している場合は、コマンドラインツールを使用してデータベースを見つけることができます。
多くの場合、以下のパスにある:
/var/lib/mysql/your_database_name
しかし、これはホスティングサービスによって異なる可能性があります。
データベースファイル自体にアクセスする必要はないことを覚えておくことが重要です。phpMyAdminのような他のツールを使ってデータベースを管理することができます。
phpMyAdminとは何ですか?
phpMyAdminはウェブベースのソフトウェアで、ウェブブラウザを使ってMySQLデータベースを管理することができます。使いやすいインターフェースで、MySQL コマンドやデータベース操作を実行することができます。
また、データベースのテーブル、行、フィールドを閲覧、編集することもできる。また、データベース内のすべてのデータをインポート、エクスポート、削除することができます。
phpMyAdminへのアクセス方法
PhpMyAdminは、すべてのトップWordPressホスティング会社にプリインストールされています。ホスティングアカウントのcPanelダッシュボードのデータベースセクションで見つけることができます。以下は、Bluehostのコントロールパネルのスクリーンショットの例です:
ホスティングサービスによっては、cPanelインターフェースが上記のスクリーンショットと異なる場合があります。しかし、データベースセクションの下にphpMyAdminアイコンを見つけることができます。
クリックするとphpMyAdminインターフェースが開き、左の列からWordPressデータベースを選択できます。その後、phpMyAdminはWordPressデータベースのすべてのテーブルを表示します。
WordPressデータベースのテーブルを見てみよう。
WordPressデータベースのテーブルを理解する
各WordPressインストールには、データベースに12の初期設定があります。各データベーステーブルには、さまざまなセクション、機能、WordPressの機能のデータが含まれています。
これらのテーブルの構造を見ると、サイトのさまざまな部分がどこに保存されているかが簡単に理解できます。現在、初期設定のWordPressインストールでは、以下のテーブルが作成されます:
注:初期設定では、データベースの各テーブル名の前にwp_という
接頭辞が付いていますが、インストール時に変更することができます。
- wp_commentmeta :このテーブルには、WordPressサイトに投稿したコメントのメタ情報が格納される。テーブルには4つのフィールドがある:meta_id、comment_id、meta_key、meta_value。それぞれのmeta_idはcomment_idと関連している。保存されるコメントのメタ情報の一例は、コメントする状態(承認、保留、ゴミ箱)です。
- wp_comments :その名の通り、このテーブルにはWordPressのコメントが格納されている。コメント投稿者の名前、URL、メール、コメントなどが含まれる。
- wp_links :WordPressの以前のバージョンやLink Managerプラグインで作成されたブログロールを管理する。
- wp_options :このテーブルには、サイトのURL、管理者のメール、初期カテゴリー、ページごとの投稿、投稿フォーマットなど、WordPressのサイト全体の設定のほとんどが格納されています。オプションテーブルはまた、プラグイン設定を保存するために多くのWordPressプラグインによって使用されます。
- wp_postmeta :このテーブルには、WordPressの投稿、ページ、カスタム投稿タイプに関するメタ情報が格納されています。投稿メタ情報の例としては、ページを表示するために使用されるテンプレート、カスタムフィールドなどがあります。WordPressのSEO情報など、プラグインのデータを格納するためにこのテーブルを使用するプラグインもあります。
- wp_posts :名前には投稿とありますが、実際には、このテーブルにはすべての投稿タイプ、あるいはコンテンツ・タイプが含まれます。このテーブルには、すべての投稿、ページ、リビジョン、カスタム投稿タイプが含まれます。
- wp_termmeta :このテーブルを使うことで、開発者はカスタムのタクソノミーの下にあるキーワードのカスタムメタデータを保存することができます。たとえば、WooCommerceは商品属性とカテゴリーのメタデータを保存するためにこのテーブルを使います。
- wp_terms :WordPressには強力なタクソノミーシステムがあり、コンテンツを整理することができます。個々のタクソノミー項目はキーワードと呼ばれ、このテーブルに格納される。例えば、WordPressのカテゴリーとタグはタクソノミーであり、その中の各カテゴリー/タグはキーワードである。
- wp_term_relationships :このテーブルはWordPressの投稿タイプとwp_termsテーブルのキーワードの関係を管理する。例えば、投稿XがYカテゴリーに属するかどうかをWordPressが判断するためのテーブルである。
- wp_term_taxonomy :このテーブルは、wp_termsテーブルで定義されたキーワードのタクソノミーを定義します。例えば、「WordPressチュートリアル」というキーワードがある場合、このテーブルには、それがカテゴリーというタクソノミーに関連付けられているというデータが格納されている。つまり、このテーブルには、WordPressがどのキーワードがカテゴリーで、どのキーワードがタグなのかなどを区別するためのデータが格納されています。
- wp_usermeta :サイトに登録されたユーザーに関するメタ情報を含みます。
- wp_users :ユーザー名、パスワード、ユーザーメールなどのユーザー情報が含まれます。
phpMyAdminを使ったWordPressデータベースの管理
WordPressのデータベースには、WordPressの重要な設定や、ブログの投稿、ページ、コメントなどがすべて含まれています。phpMyAdminを使用する際には細心の注意が必要で、誤って重要なデータを削除してしまう可能性があります。
念のため、常にデータベースの完全なバックアップを作成してください。これにより、データベースを以前の状態に復元することができます。
WordPressデータベースのバックアップを簡単に作成する方法を見てみましょう。
phpMyAdminを使用してWordPressデータベースのバックアップを作成する
phpMyAdminからWordPressデータベースのバックアップを作成するには、データベースをクリックします。次に、上部メニューの「エクスポート」タブをクリックします。
phpMyAdminの新しいバージョンでは、エクスポート方法を尋ねられます。クイックメソッドでは、データベースを.sqlファイルでエクスポートします。カスタマイザーでは、より多くのオプションが提供され、圧縮されたzipまたはgzipアーカイブ形式でバックアップをダウンロードすることができます。
カスタマイザーを使用し、圧縮方法としてzipを選択することをお勧めします。カスタマイザーでは、データベースからテーブルを除外することもできます。
データベーステーブルを作成するプラグインを使用していて、そのプラグインを使用しなくなったとします。その場合、そのテーブルをバックアップから除外することができます。
エクスポートしたデータベースファイルは、phpMyAdminのインポートタブを使用して、別のデータベースまたは同じデータベースにインポートすることができます。
プラグインを使ってWordPressのバックアップを作成する
WordPressサイトのバックアップを定期的に取ることは、WordPressのセキュリティのためにできる最善のことです。WordPressのデータベースにはサイト情報の大部分が含まれていますが、テンプレートファイル、画像、アップロードなど、かなり重要な要素が欠けています。
画像はすべて/wp-content/ディレクトリのアップローダーフォルダに保存されています。どの画像が投稿に添付されているかという情報をデータベースが持っていても、画像フォルダーにそれらのファイルがなければ意味がありません。
初心者はデータベースのバックアップがすべてだと思っていることが多い。これは間違いです。テーマ、プラグイン、画像を含むサイト全体のバックアップが必要です。
ほとんどのホスティングサービス会社は毎日バックアップを取っていると言っていますが、万が一に備えてご自身でバックアップを取っておくことをお勧めします。
注: WP EngineのようなマネージドWordPressホスティングサービスを使用している場合、毎日バックアップが作成されます。
WP Engineを使用していない大多数の人は、WordPressバックアッププラグインを使用して、サイトにWordPressの自動バックアップを設定する必要があります。
プロのヒントサイトとデータベースの定期的なバックアップをご希望ですか?WPBeginnerのWordPressメンテナンス&サポートサービスをご利用ください。当社の専門家チームが、定期的なクラウドバックアップの設定、サイトのデータベースの管理と最適化、サイトのパフォーマンスの最適化を行います。
phpMyAdmin経由でWordPressデータベースのバックアップをインポートする
phpMyAdminでは、WordPressデータベースを簡単にインポートすることもできます。phpMyAdminを起動し、WordPressデータベースを選択するだけです。
次に、上部メニューの「インポート」リンクをクリックします。
次の画面で「Choose file」ボタンをクリックし、先ほどダウンロードしたデータベースバックアップファイルを選択します。
phpMyAdminがバックアップファイルのアップロードを処理し、WordPressデータベースにインポートします。完了すると、成功のメッセージが表示されます。
phpMyAdminでWordPressデータベースを最適化する
WordPressをしばらく使っていると、データベースが断片化してきます。メモリのオーバーヘッドが発生し、データベース全体のサイズが大きくなり、クエリーの実行時間が長くなります。
MySQLには、データベースを最適化する簡単なコマンドが用意されている。phpMyAdminにアクセスし、WordPressデータベースをクリックしてください。WordPressのテーブルのリストが表示されます。
表の下にある「すべてチェック」をクリックする。その横に “With Selected “ドロップダウンがある。それをクリックして「テーブルの最適化」を選択する必要がある。
選択したテーブルをデフラグすることで、WordPressデータベースを最適化します。WordPressのクエリーの実行が少し速くなり、データベースのサイズが少し小さくなります。
phpMyAdminを使用してWordPressの問題を修正する
先に述べたように、phpMyAdminはWordPressの一般的なエラーや問題のトラブルシューティングや修正に便利なツールです。
phpMyAdminを使って簡単に修正できるWordPressの一般的な問題をいくつか見てみましょう。
phpMyAdminを使ってWordPressのパスワードをリセットする
WordPressの管理者パスワードを忘れてしまい、パスワード紛失メールを送っても復旧しない場合、この方法ですぐにパスワードをリセットすることができます。
まず、phpMyAdminを起動し、WordPressデータベースを選択します。WordPressデータベースのテーブルが表示されますので、wp_usersテーブルの横にある「参照」をクリックしてください。
注意:WordPressデータベースのテーブルには、スクリーンショットで表示しているものとは異なるテーブル接頭辞が付いている可能性があります。
WordPressユーザーテーブルの行が表示されます。パスワードを変更したいユーザー名の横にある「編集」ボタンをクリックしてください。
phpMyAdminはすべてのユーザー情報フィールドを持つフォームを表示します。
user_pass’フィールドの値を削除し、新しいパスワードに置き換える必要があります。Function’欄のドロップダウンメニューから’MD5’を選択し、’Go’ボタンをクリックします。
パスワードはMD5ハッシュを使って暗号化され、データベースに保存されます。
おめでとうございます!phpMyAdminを使用してWordPressパスワードの変更に成功しました。
さて、なぜパスワードを暗号化するのにMD5ハッシュを選んだのか不思議に思う人もいるだろう。
旧バージョンでは、WordPressはMD5ハッシュを使ってパスワードを暗号化していました。WordPress 2.5以降、より強力な暗号化技術を使用するようになりました。しかし、WordPressは後方互換性を提供するためにMD5をまだ認識しています。
MD5ハッシュとして保存されたパスワード文字列を使ってログインすると、WordPressはすぐにそれを認識し、新しい暗号化アルゴリズムを使って変更します。
phpMyAdminを使用してWordPressに新規管理ユーザーを追加する
WordPressのデータベースにはアクセスできるが、WordPressの管理エリアにはアクセスできないとします。管理ユーザーのパスワードを変更することはできますが、他の管理ユーザーがそのアカウントを使用することはできません。
もっと簡単な方法は、phpMyAdminで新しい管理ユーザーを追加することです。
まず、phpMyAdminを起動し、WordPressデータベースを選択します。WordPressデータベースのテーブルが表示されますので、wp_usersテーブルの横にある「参照」リンクをクリックしてください。
phpMyAdminはwp_usersテーブル内の行を表示します。
上部のメニューから「インサーター」をクリックしてください。
WordPressサイトに新規ユーザーを追加するためのフォームが表示されます。
以下は、このフォームの各フィールドの記入方法です。
- ID– 自動的にジェネレータが生成されるので、これは無視してよい。
- user_login– ログインに使用するWordPressユーザー名です。
- user_pass– WordPressのパスワードです。パスワードを入力し、機能のカラムでMD5を選択する必要があります。
- user_nicename – ログイン時に使用するURLフレンドリーなユーザー名です。
- user_email– 正しいメールアドレスを入力してください。パスワードリセットやWordPressの通知メールを受信するために必要な場合があります。
- user_url– あなたのサイトのURLを追加するか、空白のままにしておきます。
- user_registered– ここに現在時刻を自動的にインサートするには、機能カラムでCURRENT_TIMEを選択する必要があります。
- user_activation_key– このフィールドは空白のままでもかまいません。ユーザー登録の承認に使用されます。
- user_status– このフィールドは空白のままでも構いません。
- display_name– 投稿に表示したいユーザーのフルネームを入力できます。空白のままにしておくこともできます。
フォームに入力後、「Go」ボタンをクリックしてWordPressデータベースに挿入します。
phpMyAdminがMySQLクエリーを実行してデータをインサートします。
ユーザーを追加しましたが、そのユーザーはWordPressサイトの管理者ユーザー権限グループを持っていません。この値はwp_usermetaという別のテーブルに保存されます。
このユーザーを管理者にする前に、ユーザーIDを見つける必要がある。
wp_usersテーブルの横にある’Browse’リンクをクリックすると、新しく追加したユーザーとそのユーザーIDを含む行が表示されます。
ユーザーIDは次のステップで必要になるのでメモしておくこと。
では、wp_usermetaテーブルの横にある「Browse」リンクをクリックして、wp_usermetaテーブルを開いてみよう。
次に、上部にある『インサーター』のリンクをクリックする必要がある。
これでテーブルに新しい行を追加できる。
新しい行を入力するフォームが表示されます。
ここでWordPressに、先ほど作成したユーザーが管理者権限グループを持っていることを伝えます。
以下は、このフォームへの記入方法です。
- umeta_id– 自動的に入力されるので、空白のままにしておく必要がある。
- user_id– 先ほどコピーしたユーザーIDを入力します。
- meta_key– このフィールドには’wp_capabilities’を入力する必要があります。ただし、WordPressのテーブル名が異なる接頭辞を使用している場合は、wp_を置き換える必要があるかもしれません。
- meta_value– 以下のシリアル化された値を入力する必要があります:
a:1:{s:13: “管理者”;s:1: “1”;}。
最後に「Go」ボタンをクリックして変更を保存します。
次に、ユーザー・レベルを定義するために別の行を追加する必要があります。上部メニューの’Insert’リンクをクリックして、usermetaテーブルにもう1行追加します。
以下は、このフォームへの記入方法です。
- umeta_id– 自動的に入力されるので、空白のままにしておく必要がある。
- user_id– 新規に追加するユーザーのユーザーIDを入力します。
- meta_key– このフィールドには「wp_user_level」を入力する必要があります。ただし、WordPressのテーブル名が異なる接頭辞を使用している場合は、wp_を置き換える必要があるかもしれません。
- meta_value – ここでは、ユーザー・レベルの値として「10」を入力する必要があります。
Go」ボタンをクリックしてデータをインサートするのを忘れないでください。
以上で、WordPressの管理エリアにアクセスし、新しく追加した管理ユーザーでログインできるようになります。
phpMyAdminでWordPressのユーザー名を変更する
WordPressでは、ユーザーのフルネームやニックネームを変更する権限がありますが、ユーザー名を変更することはできません。
多くのユーザーは、インストーラのインストール時にユーザー名を選択してしまいますが、後で変更したいと思うかもしれません。phpMyAdminでこれを行う方法を紹介します。
注: WordPressのユーザー名をプラグインを使って簡単に変更する方法があります。
まず、ホスティングサービスのcPanelダッシュボードからphpMyAdminを起動する必要があります。その後、WordPressデータベースを選択する必要があります。
phpMyAdminはWordPressデータベースのテーブルを表示します。wp_usersテーブルの横にある「参照」リンクをクリックしてください。
このテーブルには、サイトに登録されているユーザーがすべて表示されます。
次に、変更したいユーザー名の横にある「Edit」リンクをクリックします。
phpMyAdminはユーザーデータを表示します。
user_loginフィールドを探し、値を使用したいユーザー名に変更する必要がある。
Go」ボタンをクリックして変更を保存することを忘れないでください。これでサイトにアクセスし、新しいユーザー名でログインできます。
その他の便利なphpMyAdminのトリック
WordPressのデータベースはサイトを支えるエンジンです。phpMyAdminを使用すると、パフォーマンスを向上させたり、問題を修正したり、WordPress管理エリアから変更できないものを変更したりするために、設定を調整することができます。
phpMyAdminで使えるトリックをもう少しご紹介します:
- WordPressのプラグインをすべて無効化する。
- phpMyAdminでWordPressテーマを変更する。
- phpMyAdminでWordPressデータベースを複製します。
- WordPressデータベース内のテキストの検索と置換
WordPressデータベースの保護
本題に入る前に、どのサイトもハッキングされる可能性があることを強調しておきたい。しかし、ハッキングされにくくするためにできる対策はあります。
まず最初にできることは、WordPressデータベースの接頭辞を変更することです。これにより、WordPressデータベースへのSQLインジェクション攻撃の可能性を大幅に減らすことができます。ハッカーは初期設定のwp_テーブル接頭辞を使用しているサイトを標的にすることが多いからです。
ステップバイステップの手順については、WordPressデータベースの接頭辞を変更する方法のチュートリアルを参照してください。
さらに、MySQLユーザーには常に強力なユーザー名とパスワードを選択する必要があります。そうすることで、誰かがWordPressデータベースにアクセスすることが難しくなります。
WordPressのセキュリティについては、Sucuriを使用することを強くお勧めします。このプラグインは、MySQLインジェクションの試みがあなたのサイトに到達する前に、それをキャッチする最高のWordPressセキュリティプラグインです。
このガイドがWordPressのデータベース管理とphpMyAdminの使い方を学ぶのにお役に立てば幸いです。WordPress データベースを修復する方法や、WordPress ダッシュボードに FTP のようなファイルマネージャーを追加する方法についてのガイドもお読みください。
If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.
Syed Balkhi says
Hey WPBeginner readers,
Did you know you can win exciting prizes by commenting on WPBeginner?
Every month, our top blog commenters will win HUGE rewards, including premium WordPress plugin licenses and cash prizes.
You can get more details about the contest from here.
Start sharing your thoughts below to stand a chance to win!
Jiří Vaněk says
Wow, this is a great article, I have saved it to my favorites. I actually knew some of the tricks in phpmyadmin, but definitely not all of them, and here it’s all beautifully described, including pictures. This article is a goldmine for working with databases and WordPress.
WPBeginner Support says
Glad you liked our article
管理者
Nadine says
Hi!
Thanks you so much for this tutorial!!! it was really help full!
WPBeginner Support says
Glad our guide was helpful
管理者
Abdul says
Article is well explanatory and concise. Thank you.
WPBeginner Support says
You’re welcome
管理者
Kelvin says
Am having problem with the login pageusername how it connect with database
WPBeginner Support says
For any issues with your database, you would want to reach out to your hosting provider and they should be able to assist.
管理者
Kevin says
A good introduction thank you.
I have several WP sites and several databases.
How can I tell which database belongs to which site?
WPBeginner Support says
The wp-config file for each site and that would specify which database they are using. You can see our guide on the wp-config file below:
https://www.wpbeginner.com/glossary/wp-config-php/
管理者
Salman says
Perfect… I want to learn
WPBeginner Support says
Glad our article can be a good starting point
管理者
Pam Sheets says
Awesome! Very well explained quick and to the point.
Thank you,
WPBeginner Support says
You’re welcome, glad you liked our article
管理者
Dubravka says
Very clear and really good article.
WPBeginner Support says
Thank you
管理者
Aviral says
Very nice article
WPBeginner Support says
Thank you
管理者
Vimal Rathod says
You write well I learned a lot from this blog. My question was answered but I also got the information I needed
WPBeginner Support says
Glad our content has been helpful
管理者
ajay says
I have two totally separate WP websites setup. Different domains, different databases. I manage both of them and they are both hosted on a dedicated server. I am trying to include some basic content that requires just a tad more than an RSS feed. I need to pull data from SITE-1 and display it on SITE-2
WPBeginner Support says
If it is a post or page you can go under Tools>Export on the site with the content to select the specific content you want to be transferred and then use Tools>Import on the site to bring in the content
管理者
Dr Eddy says
I need more help how to create, a website via word press and how to Host it
Any help..
WPBeginner Support says
We have a guide you can follow here: https://www.wpbeginner.com/guides/
管理者
Wadhi says
do i need to learn back end development if i use WordPress. I mean aren’t there some plugins which can help me create a website with front-end and back end system. I want a food delivery website
WPBeginner Support says
You do not need to learn development to run a WordPress site. Some plugins will give you that kind of editing power but not all of those plugins are needed.
管理者
George says
when i clink on new post, this is what i see; Sorry, that didn’t work.
Please try again or come back later.
504 Error. Gateway Timeout.
please help
WPBeginner Support says
For the 504 error, you would want to take a look at our article here: https://www.wpbeginner.com/wp-tutorials/how-to-fix-the-504-gateway-timeout-error-in-wordpress/
管理者
Steve Hanzek says
I’m looking to create a website that would allow bands and venues to maintain their schedules, and a visitor to select a date and see all the bands playing on that date, and all the venues with bands playing on that date.
I’m proficient with the SQL (mySQL) needed to do the querying, just want to find out if WordPress will let me create custom pages based on the results of a query?
Thanks
WPBeginner Support says
WordPress will allow that, for an example plugin that already allows you to search you can take a look at our article here: https://www.wpbeginner.com/plugins/how-to-let-users-filter-posts-and-pages-in-wordpress/
管理者