LoginSignup
0
0

More than 1 year has passed since last update.

【AWS】WordPress用にデータベース作成(Part2)

Last updated at Posted at 2023-01-26

【TOPへ戻る】
 Part1:WebサーバーにPHPをインストール
 Part2:WordPress用にデータベース作成
 Part3:WordPressのインストールと設定

Part2:WordPress用にデータベース作成

Webサーバーから作成したRDS MySQLに接続し、データベースを作成します。

データベース作成
/* RDS MySQL Server(インスタンス)に接続 */
/* オプション[ -u = ユーザーID / -p = パスワード / -h 接続するホスト(エンドポイント) ]' */
[root/]# mysql -u admin -p -h mysql-db.chwgidx2g0zh.ap-northeast-1.rds.amazonaws.com
Enter password:
Welcome to the MariaDB monitor.
Your MySQL connection id is 272
Server version: 8.0.31 Source distribution

/* WordPressで使用するデータベースを作成' */
/* CREATE DATABASE [データベース名] DEFAULT CHARACTER SET [文字コード] COLLATE [照合順序];' */
MySQL [(none)]> create database wordpress_db default character set utf8 collate utf8_general_ci;
Query OK, 1 row affected, 2 warnings (0.04 sec)

/* 作成したデータベースが存在することを確認 */
MySQL [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| test_table         |
| wordpress_db       |
+--------------------+
6 rows in set (0.03 sec)

【作成したRDS MySQLのエンドポイント確認】
image.png

【データベースの作成方法】
# データベースの作成
CREATE DATABASE データベース名;
# デフォルト文字コードの指定
CREATE DATABASE データベース名 DEFAULT CHARACTER SET 文字コード;
# データベース照合順序の指定
CREATE DATABASE データベース名 COLLATE 照合順序;

【公式ドキュメント】:13.1.10 CREATE DATABASE 構文

【照合順序ってなに?】
データの並べ替えや比較を行うための規則のことを照合順序と言います。
全角半角を区別したり、逆に区別しないようにする設定ができます。
そうすることでデータの並び順が変わったり、クエリの検索結果が変わったりします。

【公式ドキュメント】:10.1 一般の文字セットおよび照合順序
【その他ドキュメント】:【MySQL】照合順序とは?
【その他ドキュメント】:文字セットと照合順序

続いてはWordPless用のユーザーを作成し、
対象のデータベースにアクセスし操作できる権限を付与していきます。

ユーザー作成&権限付与
/* WordPress用にユーザーを作成 */
/* CREATE USER '[ユーザー名]'@'[接続元のホスト名]' IDENTIFIED BY 'パスワード'; */
/* [%]は、任意の0文字以上の文字列を表す(ワイルドカード文字) =「任意のホスト」 */
MySQL [(none)]> create user 'wordpress_user'@'%' identified by 'password';
Query OK, 0 rows affected (0.04 sec)

/* 作成したユーザーに権限付与 */
/* GRANT [権限] ON [データベースレベル(使用できるDB)] TO '[ユーザー名]'@'[接続元のホスト名]'; */
MySQL [(none)]> grant all on wordpress_db.* to 'wordpress_user'@'%';
Query OK, 0 rows affected (0.02 sec)

/* 権限の有効化 */
MySQL [(none)]> flush privileges;
Query OK, 0 rows affected (0.01 sec)

/* 作成したユーザーが存在することを確認 */
MySQL [(none)]> select user,host from mysql.user;
+------------------+-----------+
| user             | host      |
+------------------+-----------+
| admin            | %         |
| wordpress_user   | %         |
| mysql.infoschema | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
| rdsadmin         | localhost |
+------------------+-----------+
6 rows in set (0.00 sec)

【ユーザーに権限を付与する方法】
# ユーザーに権限付与
GRANT [権限] ON [適用対象のデータベース].[適用対象のテーブル] TO 'ユーザ名'@'ホスト名' IDENTIFIED BY 'パスワード';

【公式ドキュメント】:13.7.1.6 GRANT ステートメント
※ 権限の種類も上記のリンクに記載されています。
  (表 13.1 GRANT および REVOKE に対して許容可能な権限)

【FLUSH PRIVILEGES とは?】
データベース内のGRANTテーブルから再読込を実行します。通常、各ユーザ権限とINSTALL PLUGINの情報を、MySQLサーバーはキャッシュに保持しており、この情報を最新化する場合はFLUSH PRIVILEGESを実行する必要があります。CREATE USERやGRANT構文を実行した場合は自動で再読込が実行されるため必要ありませんが、テーブルを直接変更した場合はFLUSH PRIVILEGESを実行する必要があります。

【公式ドキュメント】:6.2.6 権限変更が有効化される時期
【公式ドキュメント】:13.7.8.3 FLUSH ステートメント

【mysql.user とは?】
MySQL ユーザーアカウントとそのアクセス権限を定義している付与テーブルである。
mysql.user テーブルにどのアカウントが存在するか、それらのパスワードが空かどうかを表示するには、次のステートメントを使用します。
SELECT User, Host, Password FROM mysql.user;

最後に作成したユーザーでログインできるか確認し、
作成したデータベースにアクセスしてみる。

接続確認
/* 一旦ログオフし作成したユーザーでログインできるか確認 */
[root/]# mysql -u wordpress_user -p -h mysql-db.chwgidx2g0zh.ap-northeast-1.rds.amazonaws.com
Enter password:
Welcome to the MariaDB monitor. 
Your MySQL connection id is 282
Server version: 8.0.31 Source distribution

/* 作成したユーザーでデータベース一覧を確認 */
/* 触れるデータベースしか表示されない。*/
MySQL [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| performance_schema |
| wordpress_db       |
+--------------------+
3 rows in set (0.00 sec)

/* 作成したユーザーで対象のデータベースにアクセスできるか確認 */
MySQL [(none)]> use wordpress_db;
Database changed

Part3:WordPressのインストールと設定 に続く・・・・。

備考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0