1 はじめに
自宅サーバーのLinuxバージョン更新によってWordPressサイトを再構築したり、
またOS設定の不備が主な原因でのプラグイン不具合が発生したりで、
WordPressデータベースを作成し直すことが結構あります。
その度に調べるのですが、よく参照していたページが無くっていたりしますので、
自分の備忘録として、データベースの作成方法と必要な管理の方法をまとめました。
本記事は、下に示す環境を下に記述しました。
・ Red Hat Enterprise Linux release 10.1 (Coughlan)
・ PHP 8.4.18 (cli) (built: Feb 10 2026 17:48:03) (NTS gcc x86_64)
2 データベースの作成
MySQL(or MariaDB)のインストール、初期設定、およびログイン方法については、
本記事では省略します。
以下に示す節では、
MySQLログイン後のコマンド受け付け可能状態になっているところからを示します。
2.1 データベースの作成と削除
2.1.1 データベースの作成
データベース作成は、下に示すよう“CREATE DATABASE”コマンドを使用します。
|
1 |
> CREATE DATABASE [データベース名] default character set utf8mb4 collate utf8mb4_general_ci; |
【CHARACTER SET: 文字コードセット】
2026年現在、“utf8”(utf8mb3のエイリアス: 3バイト)より、
“utf8mb4”(4バイト)の方が推奨されているそうです。
utf8文字セットは実際には1文字最大3バイトまでしか対応しておらず、
4バイトを必要とする絵文字や特殊な漢字が保存できず、データが破損する可能性があるためです。
【COLLATE: 照合順序】
文字の比較・ソート順序ルールです。
“utf8mb4_general_ci”、または“utf8mb4_unicode_ci”を指定します。
“_ci”はケースインセンシティブ(大文字・小文字を区別しない)の意味です。
作成されたデータベースは、次のコマンドで確認することができます。
|
1 |
> SHOW DATABASES; |
2.1.2 データベースの削除
データベース作成は、下に示すよう“DROP DATABASE”コマンドを使用します。
|
1 |
> DROP DATABASE [データベース名]; |
データベース名を変更したい時、
またWordPress実行環境設定ミスなどでバックアップの記事復元に失敗した時などに、
データベースを初期化する際にデータベースを一旦削除してから再作成する場合に利用しています。
2.2 データベースユーザーの作成
2.2.1 データベースユーザーの作成
データベースユーザーは、下に示すように“CREATE USER”コマンドを使用します。
|
1 |
> CREATE USER 'username'@'localhost' IDENTIFIED BY 'password'; |
【“@localhost”): ユーザーのロケーション】
WordPressデータベースをリモートアクセスする予定が無いないなら、
ユーザーのロケーションは“@localhost”としておくだけで充分です。
【IDENTIFIED BY ‘password’: パスワード】
Apacheの生ログを見ると、“phpMyAdmin”などのツールを介して
外国からの不正アクセスが結構試みられているようです。
安全のため、解読され難いものを設定すべきです。
作成されたユーザーは、次のコマンドで確認することができます。
|
1 |
> SELECT user, host FROM mysql.user; |
2.2.2 ユーザー権限の付与
ユーザに付与される権限によって、ユーザが実行できる操作が決まります。
WordPressデータベースアクセスユーザーには、「全ての権限: “ALL”」を与えます。
ホスト内にWordPressデータベースしかないのであれば、
下に示すように2.2.1項で作成したユーザーに、
“ON *.*”と全データベースにアクセスできる権限を与えても問題はありません。
|
1 2 |
> GRANT ALL ON *.* TO ‘username’@’localhost’; > FLUSH PRIVILEGES; |
ユーザーの権限は、コマンドで確認することができます。
|
1 |
> SHOW GRANTS FOR 'username'@'localhost'; |
3 データベースの管理
WordPressデータベースの管理や保守の方法について知っていれば、
例えばサイトのURL変更などWordPressサイトを再構築しないで済む場合があります。
本章では、簡単にデータベースの管理や保守の方法について示します。
3.1 phpMyAdmin
phpMyAdminは、MySQLを管理するときによく使われるツールです。
phpMyAdminを使うことで、MySQLをより簡単に保守管理できるようになります。
phpMyAdminは、名前の通りPHPの実行環境が必要です。
本記事では、既にPHPがインストール済みであるとして話を進めます。
RHEL 10でのPHPインストールについては、下に示すページをご覧ください。
【RHEL10/WordPress】
PHPのインストールとWordPress実行に必要なPHP拡張モジュール
3.1.1 インストール
RHEL 10では、下に示すようインストールします。
|
1 |
# dnf --enablerepo=epel -y install phpMyAdmin |
3.1.2 初期設定
デフォルトのままでは、ローカルホストからでしか、
phpMyAdminのページが開けないようになっています。
“/etc/httpd/conf.d/phpMyAdmin.conf”に、
図3.1-1に示すよう“Require ip 192.0.2.0/24”のように
phpMyAdminにアクセスを許可するIPアドレスをのように追記します。
個人的には“Require all granted”とするのは、危険だと思っています。
# “phpMyAdmin”のページは、世界中から不正アクセスが試みられています。
# “192.0.2.0/24”は、
[RFC5737] IPv4 Address Blocks Reserved for Documentationで
# 説明用のIPアドレスとして予約されたIPアドレスです。
3.1.3 httpdの再起動
初期設定が終わったら、httpdを再起動します。
|
1 |
# systemctl restart httpd |
3.2 phpMyAdminのオープン
phpMyAdminのページは、 ブラウザにてURL“https://[IPアドレス]/phpMyAdmin”で開けます。
ユーザ名、およびパスワードは、MySQLに設定したユーザーのものを入力します。
4 WordPressデータベースの構造
WordPressのデータベースには、表4-1に示す12個の基本テーブルがあります。
それぞれのテーブルにWordPressのデータが格納されていて、
例えば「wp_post」には記事の投稿内容、
「wp_postmeta」には記事のメタデータ(カスタムフィールド)が保存されます。
プラグインをインストールした時や、テーマをインストールした時などには、
それぞれ独自のテーブルがを作成されます。
なお、本章は、次のページを参考にして記述していることをお断りしておきます。
初心者必見!WordPressのデータベースの構造や仕組み、メンテナンス等について解説
| UMENOKI
【WordPress】WordPressのデータベース構造について | eguweb
4.1 wp-users
WordPressサイトのユーザー情報を格納するためのテーブルです。
各ユーザーのユーザー名、パスワード(暗号化されて保存)、メールアドレス、表示名、
権限レベルなどの情報が含まれます。
4.2 wp_usermeta
wp_usersテーブルと関連付けられたユーザーの追加情報やメタデータを格納するための
テーブルです。
カスタムフィールド、プロフィール情報、権限設定など、ユーザーに関連する追加情報が
含まれます。
4.3 wp_posts
12個のテーブルの中でも特に重要度が高いのが、
WordPressの投稿や固定ページに関するデータを蓄積しているwp_postsです。
4.4 wp_postmeta
投稿のメタ情報が保存されています。
カスタムフィールドやプラグインによって投稿に機能を追加する場合に使われます。
4.5 wp_comments
WordPressサイトのコメントを格納するためのテーブルです。
各コメントの内容、投稿者の名前、メールアドレス、ウェブサイト、投稿日時などの情報が
含まれます。
4.6 wp_commentmeta
wp_commentsテーブルと関連付けられたコメントの追加情報やメタデータを格納するための
テーブルです。
コメントのステータス、カスタムフィールド、メタデータなどの情報が含まれます。
4.7 wp_terms
WordPressサイトのターム(カテゴリーやタグなど)の情報を格納するためのテーブルです。
タームの名前、スラッグ、説明などの情報が含まれます。
4.8 wp_term_relationships
wp_termsテーブルと関連付けられた投稿やページ、カスタム投稿タイプなどの
タームの関係性を格納するためのテーブルです。
投稿とタームの関連付け情報が含まれます。
4.9 wp_term_taxonomy
タームの階層構造や分類の情報を格納するためのテーブルです。
タームのタイプ(カテゴリー、タグなど)、親子関係、タクソノミーの説明などの情報が
含まれます。
4.10 wp_termmeta
wp_termsテーブルと関連付けられたタームの追加情報やメタデータを格納するための
テーブルです。
カスタムフィールド、メタデータ、タームのオプションなどの情報が含まれます。
4.11 wp_options
WordPressの設定やオプション情報を格納するためのテーブルです。
WordPressの設定、プラグインやテーマの設定、キャッシュ設定などが含まれます。
4.12 wp_links
WordPressのブログロールやリンク情報を格納するためのテーブルです。
リンクの名前、URL、説明、カテゴリーなどの情報が含まれます。
以上
本記事の元となっているWordで作成したPDFを
ページ最後に貼り付けました。
少しでも役に立てていただければ、うれしく思います。
このPDFファイルは、自由に配布されてもかまいません。
ただし、再配布の際には、
入手元と著者名は明らかにしてください。
なお、上のPDFファイルの内容、また本文中の記述に、
誤字や脱字、誤った内容の記述など見つかりましたら、
下に示すフォームでご連絡いただければ幸いです。

コメント