MySQL8.0にデータベースユーザーを作成する方法。

2021年12月5日

タイトルの通りとなりますがMySQL8.0を用いてWordPressデータベースユーザを作成する方法を紹介します。

  • 目的
    • CentOS7上で、MySQL8.0を用いて、WordPressユーザを作成し、SQLの用語などが理解出来るようになる。
  • ゴール
    • MySQL8.0で、WordPressデータベースユーザを作成する事が出来る。
    • DataBaseアクセス権限など設定の仕方を学習する。
  • 前提条件
    • CentOS7をインストール済で、管理者権限で操作出来ること。
    • MySQL8.0とWordPress4.9とPHP7.3とApache2.4をインストールであること。
    • WordPressに必要なPHPプラグインがインストール済であること。

それでは、早速作業を開始していきましょう♪

mysql> select user, host, plugin from mysql.user;
+------------------+----------------+-----------------------+
| user             | host           | plugin                |
+------------------+----------------+-----------------------+
| matomowebtrackrx | ***.***.***.** | mysql_native_password |
| matomowebtrackrx | localhost      | caching_sha2_password |
| mysql.infoschema | localhost      | caching_sha2_password |
| mysql.session    | localhost      | caching_sha2_password |
| mysql.sys        | localhost      | caching_sha2_password |
| root             | localhost      | caching_sha2_password |
| wpadmin1990Xv    | localhost      | mysql_native_password |
+------------------+----------------+-----------------------+
7 rows in set (0.01 sec)

現在登録されているユーザ情報確認します。
ここでは、仮にdatabase_user1というデータベースユーザを作成するものとします。
database_user1が項目にないことが確認出来ます。

mysql> show global variables like 'validate%';
+--------------------------------------+-------+
| Variable_name                        | Value |
+--------------------------------------+-------+
| validate_password.check_user_name    | ON    |
| validate_password.dictionary_file    |       |
| validate_password.length             | 8     |
| validate_password.mixed_case_count   | 1     |
| validate_password.number_count       | 1     |
| validate_password.policy             | LOW   |
| validate_password.special_char_count | 1     |
+--------------------------------------+-------+
7 rows in set (0.01 sec)

現在のMySQLセキュリティポリシー設定を確認します。
デフォルトでは、下記の様になっています。

validate_password.check_user_name = NO
validate_password.policy = MEDIUM

ここでは、セキュリティポリシーを変更する手順は割愛しますが
次のユーザ作成の時に、パスワード設定がややこしくなるので
ポリシー変更を行って下さい。

mysql> create user 'database_user1'@'localhost' identified with mysql_native_password by '*********';

********* の部分がパスワードとなりますので任意のパスワードを設定します。
create user の後に続く部分が、ユーザ名とホスト名になります。(ホスト名は取りあえず接続元を絞らない場合、localhostで良いです。)

Query OK, 0 rows affected (0.04 sec)

mysqlデータベースにwordpressで利用するデータベースユーザを設定します。
mysql_native_password認証方式にしないとphpからmysqli関数を使用して接続
できないので注意が必要です。

  • 既存のユーザの認証方式を変更するとき(今回は新規なので実行しなくて良いです。)
mysql> ALTER USER 'database_user1'@'localhost' IDENTIFIED WITH mysql_native_password BY '*********';
mysql> select user, host, plugin from mysql.user;
+----------------------------+----------------+-----------------------+
| user                       | host           | plugin                |
+----------------------------+----------------+-----------------------+
| matomowebtrackrx           | ***.***.***.** | mysql_native_password |
| matomowebtrackrx           | localhost      | caching_sha2_password |
| mysql.infoschema           | localhost      | caching_sha2_password |
| mysql.session              | localhost      | caching_sha2_password |
| mysql.sys                  | localhost      | caching_sha2_password |
| root                       | localhost      | caching_sha2_password |
| wpadmin1990Xv              | localhost      | mysql_native_password |
| database_user1             | localhost      | mysql_native_password |
+----------------------------+----------------+-----------------------+
8 rows in set (0.00 sec)

先ほど作成したdatabase_user1ユーザが追加されていることを確認します。
pluginの所がmysql_native_passwordになっている事を確認します。
上記の様になっていないとWordPressからアクセス出来ないので注意して下さい。

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| matomo             |
| mysql              |
| performance_schema |
| piwik              |
| sys                |
| wpdatabase         |
+--------------------+
7 rows in set (0.00 sec)

現在設定されているデータベースリストを確認します。
ここでは、****を作成するものとします。
database1データベースが存在しないことが確認できます。

mysql> create database database1;
Query OK, 1 row affected (0.09 sec)

wordpressで使用するdatabase1データベースを作成します。

mysql> show databases;
+----------------------------+
| Database                   |
+----------------------------+
| information_schema         |
| matomo                     |
| mysql                      |
| performance_schema         |
| piwik                      |
| sys                        |
| wpdatabase                 |
| database1                  |
+----------------------------+
8 rows in set (0.00 sec)

先ほど作成した、database1データベースが追加されている事を確認します。

mysql> grant all on database1.* to 'database_user1'@'localhost';

grant all on の後に続くのがデータベース名で’.'をその後に付加することで
そのデータベース全てと言う意味になります。
to の後に続くのが、ユーザ名とホスト名になります。

Query OK, 0 rows affected (0.01 sec)

先ほど作成したdatabase1データベースに対して先ほど作成したdatabase_user1ユーザに書き込みなど全権限を与えます。

mysql> select * from mysql.db where user = 'database_user1' and host = 'localhost' and db = 'database1' \G;
*************************** 1. row ***************************
                 Host: localhost
                   Db: database1
                 User: database_user1
          Select_priv: Y
          Insert_priv: Y
          Update_priv: Y
          Delete_priv: Y
          Create_priv: Y
            Drop_priv: Y
           Grant_priv: N
      References_priv: Y
           Index_priv: Y
           Alter_priv: Y
Create_tmp_table_priv: Y
     Lock_tables_priv: Y
     Create_view_priv: Y
       Show_view_priv: Y
  Create_routine_priv: Y
   Alter_routine_priv: Y
         Execute_priv: Y
           Event_priv: Y
         Trigger_priv: Y
1 row in set (0.01 sec)

ERROR:
No query specified

データベースのアクセス権限を確認します。
上記の様な状態になっていればO.K.です。

mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

MySQL対して設定の適用を行います。

これで、すべての工程が終了となります。
実際に、WordPressからアクセスできることを確認してくださいね(^^♪

アクセスする際は、ブラウザ上からアクセスすることになるので
Apacheなどの設定が必要になってきますがここでは、もう設定済み
のもととして扱っています。

それでは、良きWordPress生活を~~~~~~~~
わからないところやここはどうなの?とか知りたい場合は
コメントしてくださいね(^^♪

適せん回答していますのでGood Job!∑d(゚д゚*)

mysqlmysql