9/7まで 最大30%OFF 初心者編|無料コーディング教材|HTML・CSS・jQueryを実践で学ぶ

WordPressとMySQLの関係|データの保存場所・テーブル・接続エラーを初心者向けに解説

WordPressとMySQLの関係とデータの保存場所を紹介するアイキャッチ

WordPressを使っていると、「MySQLは何をしているの?」「記事や画像はどこへ保存されるの?」と疑問に感じることがありますよね。

WordPressでは、投稿本文、固定ページ、設定、ユーザーなどの情報をMySQLまたはMariaDBのデータベースへ保存します。一方、テーマ、プラグイン、アップロードした画像の実ファイルは、基本的にサーバー上のファイルとして保存されます。

この記事では、WordPressとMySQLの関係、主なテーブル、接続設定、バージョンの確認方法、「データベース接続確立エラー」が出たときの確認順、バックアップの考え方を初心者向けに解説します。

結論:MySQLはWordPressのデータを保存する場所

WordPressはPHPで動くCMSです。ページを表示するとき、PHPの処理がMySQLへ必要なデータを問い合わせ、取得した投稿本文や設定をHTMLとして組み立てます。

そのため、MySQLはWordPressの裏側で使われており、普段の記事投稿でSQLを書く必要はありません。管理画面で記事を保存すると、WordPressがデータベースへの登録を代わりに行います。

ブラウザの要求を受けたWordPressがMySQLから投稿や設定を取得する流れの図

ブラウザから記事の表示を求められると、WordPressがMySQLから投稿や設定を取り出し、表示結果をブラウザへ返します。記事を更新したときは、反対にWordPressからMySQLへ変更内容が保存されます。

MySQLとは

MySQLは、関連するデータを表形式で管理するリレーショナルデータベース管理システムです。WordPressは、記事、ユーザー、設定などを役割別のテーブルへ分けて保存します。

WordPressはMySQLと互換性のあるMariaDBでも動作します。レンタルサーバーによって、MySQLまたはMariaDBのどちらが用意されているかは異なります。

WordPress公式の要件ページでは、MySQL 8.0以上またはMariaDB 10.11以上が推奨されています。要件は更新されるため、サーバーを選ぶときや移行するときはWordPress Requirementsで現在の推奨環境を確認してください。

データベースとファイルの違い

WordPressサイトを完全にバックアップするには、データベースだけでなくファイルも必要です。どちらに何が入るのかを整理しておきましょう。

保存場所主に保存されるもの
MySQL・MariaDB文字情報、設定、関連付け投稿本文、タイトル、カテゴリー、ユーザー、サイトURL、プラグイン設定
サーバー上のファイルプログラムや画像の実体WordPress本体、テーマ、プラグイン、アップロード画像

メディアライブラリの画像では、画像ファイル自体は通常wp-content/uploadsに置かれます。画像のタイトル、代替テキスト、ファイルURLとの関連などはデータベースにも保存されます。

WordPressのデータベースには複数のテーブルがある

「WordPressには12個のデータベースがある」と説明されることがありますが、正確には、一般的なシングルサイトで1つのデータベース内にWordPress標準のテーブルが複数作られます。

ローカルWordPressでwp db tablesを実行すると、次の12個の標準テーブルが表示されました。

ローカルWordPressでwp db tablesを実行して表示した12個の標準テーブル

先頭のwp_はテーブル接頭辞です。インストール時の設定によって別の文字列になるため、すべてのサイトでwp_とは限りません。

また、プラグインは独自テーブルを追加することがあります。マルチサイトではサイトごとのテーブルやネットワーク用テーブルが増えるため、「必ず12個」と考えないでください。

主なテーブルと保存内容

すべて暗記する必要はありません。まずは、投稿、設定、ユーザー、カテゴリーがどのテーブルに分かれるかを理解すると、バックアップや不具合調査の説明を読みやすくなります。

テーブル主な保存内容
wp_posts投稿、固定ページ、添付ファイル、カスタム投稿など
wp_postmeta投稿に追加されたカスタムフィールドや補足情報
wp_optionsサイトURL、テーマ、プラグインなどの設定
wp_usersユーザーのログイン名、メールアドレスなど
wp_usermeta権限、プロフィールなどユーザーの追加情報
wp_commentsコメント本文、投稿者、承認状態など
wp_commentmetaコメントの追加情報
wp_termsカテゴリーやタグの名前
wp_term_taxonomyカテゴリー、タグなど分類の種類
wp_term_relationships投稿とカテゴリー・タグの関連付け
wp_termmetaカテゴリーやタグの追加情報
wp_links旧リンク管理機能のデータ

たとえば1件の記事でも、本文とタイトルはwp_posts、カスタムフィールドはwp_postmeta、カテゴリーとの関係はwp_term_relationshipsというように、複数テーブルへ分かれて保存されます。

WordPress内部ではwpdbクラスがデータベースとのやり取りを担当します。開発者向けの詳細はwpdbクラスの公式リファレンスで確認できます。

WordPressとMySQLの接続設定

WordPressがどのデータベースへ接続するかは、WordPressを設置したディレクトリにあるwp-config.phpで指定します。

次のコードは説明用の例です。実際のデータベース名、ユーザー名、パスワード、ホスト名はレンタルサーバーの管理画面で確認し、公開記事やチャットへ貼り付けないでください。

/** WordPressで使用するデータベース名 */
define( 'DB_NAME', 'database_name_here' );

/** データベースへ接続するユーザー名 */
define( 'DB_USER', 'username_here' );

/** データベースユーザーのパスワード */
define( 'DB_PASSWORD', 'password_here' );

/** データベースサーバーのホスト名 */
define( 'DB_HOST', 'localhost' );
定数役割
DB_NAMEWordPressが使うデータベース名
DB_USER接続に使うデータベースユーザー名
DB_PASSWORDデータベースユーザーのパスワード
DB_HOSTデータベースサーバーのホスト名。サーバー会社の指定に従う

DB_HOSTlocalhostとは限りません。ホスト名、ポート番号、ソケットの指定が必要な環境もあるため、推測で変更せず契約中のサーバー情報を確認します。

公式の設定例と注意点はwp-config.phpの公式ドキュメントに掲載されています。

MySQLのバージョンを確認する方法

WordPress管理画面で「ツール → サイトヘルス → 情報」を開き、「データベース」を展開すると、データベース拡張、サーバーバージョン、ホスト、テーブル接頭辞などを確認できます。

WordPressのサイトヘルスでMySQLの拡張・バージョン・ホスト・接頭辞を確認する画面

画像はローカル環境の実画面です。本番サイトでは値が異なります。問い合わせ時に情報を共有する場合も、データベースのパスワードは含めないでください。

管理画面へ入れない場合は、レンタルサーバーの管理画面にある「MySQL」「データベース」「サーバー情報」などの項目を確認します。項目名はサーバー会社によって異なります。

データベース接続確立エラーが出たときの確認順

「データベース接続確立エラー」は、WordPressがMySQLへ接続できないときに表示されます。すぐにデータベースを削除したり、値を何度も変更したりせず、次の順番で原因を切り分けます。

  1. 障害情報を確認する:レンタルサーバーの障害・メンテナンス情報を確認する
  2. 直前の変更を確認する:移行、パスワード変更、wp-config.php編集の有無を確認する
  3. 接続情報を照合する:DB_NAMEDB_USERDB_PASSWORDDB_HOSTをサーバー管理画面と照らし合わせる
  4. ユーザー権限を確認する:データベースユーザーが対象データベースへ接続できるか確認する
  5. サーバーへ問い合わせる:接続情報が正しく障害情報もない場合は、表示時刻とエラー内容を添えて相談する

wp-config.phpを編集する前に、元のファイルを安全な場所へコピーします。パスワードを変更した場合は、サーバー側とwp-config.php側が同じ値になっている必要があります。

phpMyAdminを使うときの注意点

phpMyAdminは、ブラウザからMySQLやMariaDBのテーブルを確認・操作する管理ツールです。レンタルサーバーの管理画面から開けることがあります。

テーブルの内容を直接編集すると、WordPress管理画面の操作よりも影響範囲を把握しにくく、誤操作でサイトが表示できなくなることがあります。

  • 作業前にデータベースをエクスポートする
  • 操作するデータベース名とテーブル接頭辞を確認する
  • 意味が分からない行やテーブルを削除しない
  • 検索・置換でシリアライズされたデータを壊さない
  • 本番で試す前にローカルやステージングで確認する

記事タイトルやユーザー情報を変更するだけなら、通常はWordPress管理画面を使います。データベースを直接操作するのは、バックアップや復旧、移行、開発など目的が明確な場合に限りましょう。

WordPressのデータベースをバックアップする

データベースには記事や設定が入っているため、定期的なバックアップが必要です。更新、移行、プラグインの大きな変更、データベース操作の前にも取得します。

ただし、データベースだけでは画像、テーマ、プラグインを完全には復元できません。データベースとファイルを同じ時点の組として保存します。

バックアップ含まれる主な内容
データベース投稿、固定ページ、コメント、ユーザー、設定、各種関連付け
ファイルWordPress本体、wp-content、画像、テーマ、プラグイン、wp-config.php

バックアップは作るだけでなく、保存場所、保持期間、復元手順も決めます。公式のWordPress Backupsでは、データベースとファイルの両方を保存する考え方が説明されています。

phpMyAdminでエクスポートする場合は、対象データベースを選び、「エクスポート」からSQL形式で保存します。復元で既存データを置き換える操作は影響が大きいため、手順が分からない場合はサーバー会社へ確認してください。

テーマやプラグインからMySQLを操作するとき

テーマやプラグインを開発する場合でも、接続情報をコードへ直接書いたり、文字列をつないでSQLを作ったりするのは避けます。

  • 投稿はWP_Queryget_posts()などWordPress APIを優先する
  • 設定はOptions API、メタデータはMetadata APIを使う
  • 独自SQLが必要な場合は$wpdbとプレースホルダーを使う
  • テーブル名をwp_postsのように固定せず、接頭辞の違いを考慮する
  • 読み書きの前に権限、入力値の検証、エスケープを行う

初心者のうちは、MySQLを直接操作できることより、WordPress APIを通して安全にデータを扱うことを優先してください。

WordPressとMySQLのよくある質問

WordPressを使うにはMySQLの知識が必要ですか?

記事投稿や固定ページ作成では、SQLの知識がなくても操作できます。移行、復旧、開発、性能調査を行うときは、データベースとテーブルの基本を理解していると安全です。

MySQLとMariaDBはどちらを選べばよいですか?

利用中のレンタルサーバーがWordPressの推奨要件を満たし、保守しているものを選びます。共用サーバーでは利用者が種類を選べない場合もあります。

画像はMySQLに保存されますか?

通常、画像ファイルの実体はwp-content/uploadsへ保存されます。画像を管理するための投稿データやメタデータはデータベースにも保存されます。

テーブルを削除すると容量を減らせますか?

不要に見えても、テーマやプラグインが使用している可能性があります。作成元と用途を確認できないテーブルは削除せず、バックアップを取ってから開発者やサーバー会社へ相談してください。

まとめ

MySQLは、WordPressの記事、設定、ユーザー、カテゴリーなどを保存するデータベース管理システムです。

  • 一般的なシングルサイトでは、1つのデータベース内に複数の標準テーブルがある
  • プラグインやマルチサイトによってテーブル数は増える
  • 接続情報はwp-config.phpで管理する
  • バージョンは「ツール → サイトヘルス → 情報」で確認できる
  • バックアップはデータベースとファイルをセットで保存する
  • 意味が分からない状態でphpMyAdminから直接編集・削除しない

まずはサイトヘルスで自分のデータベース情報を確認し、投稿・設定・ファイルがどこに保存されるのかを整理してみてください。