MySQLでWordPress用のデータベースを作成する【データベース/MySQL】

Linux

WordPress用にデータベースを作成したのでメモ。
今回、AWSのデータベースであるRDSを使用しました。サーバーにはRDSを設置済みです。また、マスターユーザーのログインIDはrootで作成しました。

AWSといっても、他のサーバーでもデータベースの作成方法は同じだと思われます。

MySQLにrootでログインする

まず、SSHでサーバーにログインします。
ログインしたら次のコマンドを実行して、rootアカウントでMySQLにログインします。
※パスワードログインするには最後に「-p」オプションをつける

$ mysql -h [ホスト名] -u root -p

ちなみに、ホスト名はAWSのコンソール>RDS>データベースで作成したRDSを選択したら「エンドポイント」という項目があると思います。そちらの値を入力します。

このような表示が出ればログインは成功です!

データベース作成

データベースを作成する

まず、データベースという大きな枠組みを作ります。
CREATE DATABASEコマンドを使用します。

MySQL [(none)]> CREATE DATABASE [データベース名] DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

詳細は次の通りです。

CREATE DATABASEデータベースを作成する
DEFAULT CHARACTER SET文字コードを指定
COLLATE照合順序を指定。ものすごくざっくりな認識だと、アルファベットの大文字・小文字は区別せずにマッチする

データベース名以外は、この記述がデフォルトっぽいです。

作成したデータベースは、次のコマンドで確認できます。

MySQL [(none)]> SHOW DATABASES;

ユーザー関係

ユーザーを作成する

データベースを操作するユーザーを作成します。
今回、ユーザー名は[test_user]、パスワードは[password]で作成します。
CREATE USERコマンドを使います。書式は次の通りです。

MySQL [(none)]> CREATE USER 'test_user'@'%' IDENTIFIED BY 'password';

ユーザー名の書式は、[ユーザー名][@][ホスト名]です。ホスト名以外にIPアドレスの指定もできます。

例1)’user_name’@’host_name’
例2)’username’@’192.168.1.3′

@はシングルクォーテーションで囲みます。後ろのホスト名はワイルドカードの ‘%’ 表記が使用できます。次のtest_userはどのホストからも接続可能なことを意味します。

‘test_user’@’%’

参考サイト

ユーザーを作成する(CREATE USER文)
MySQL では新しいユーザーを作成するときに CREATE USER 文を使用します。ここでは MySQL で新しいユーザーを作成する方法について解説します。

ユーザーに権限を付与する

作成したユーザーにデータベースを操作できる権限を付与します。
新規作成したtesut_userは、どのデータベースに対しても権限がないので、テーブルを追加したり削除などの操作ができません。

権限はGRANTコマンドで付与できます。書式は次の通りです。

MySQL [(none)]> GRANT ALL ON test_database.* TO 'test_user'@'%';

詳細は次の通りです。

GRANT権限を付与する(ALLで全ての権限を付与)
ON対象になるデータベース([データベース名].*にすると全てのテーブル操作が可能なことを意味する)
TO権限を付与するユーザー名@ホスト名

なお、設定は次のコマンを実行すると反映されます。

MySQL [(none)]> FLUSH PRIVILEGES;

ユーザー一覧を確認する

作成したユーザーを確認するには次のコマンドを使用します。

MySQL [(none)]> SELECT Host, User FROM mysql.user;

ユーザーを削除する

作成したユーザーを削除するには次のコマンドを使用します。

MySQL [(none)]> drop user 'test_user'@'%'

まとめ

今回、Webサーバにデータベースシステム(MySQL)を設置するところから作業しました。
※これについては後ほど別記事でまとめたいです。
使用したのはAmazon RDS(マネージドリレーショナルデータベース)です。
今までレンタルサーバーのデータベースしか使ったことがなかったので、難しかったです、、。

コメント