CentOS上のMySQLに新規データベースを作成した際の作業メモ




# はじめに



### 概要
CentOS上に構築したMySQLにデータベース「dev」を作成し、そのデータベースに外部からアクセスするためのユーザー「devUser」を作成する。



### 環境など
- サーバ
    - OS：CentOS 7.9
    - ホスト名：CentOS
    - MySQL：Ver 8.4.0



# データベースの作成



### 認証プラグイン「mysql_native_password」の有効化
``` txt:実行ユーザー：root
mysql> SHOW PLUGINS;
+----------------------------------+----------+--------------------+---------+---------+
| Name                             | Status   | Type               | Library | License |
+----------------------------------+----------+--------------------+---------+---------+
～略～
| mysql_native_password            | DISABLED | AUTHENTICATION     | NULL    | GPL     |
+----------------------------------+----------+--------------------+---------+---------+
mysql> 
```

``` txt:実行ユーザー：root
[root@CentOS ~]# vi /etc/my.cnf


[mysqld]
～略～
mysql_native_password=ON


[root@CentOS ~]# 
```

``` txt:実行ユーザー：root
[root@CentOS ~]# systemctl restart mysqld 
[root@CentOS ~]#
```

``` txt:実行ユーザー：root
mysql> SHOW PLUGINS;
+----------------------------------+----------+--------------------+---------+---------+
| Name                             | Status   | Type               | Library | License |
+----------------------------------+----------+--------------------+---------+---------+
～略～
| mysql_native_password            | ACTIVE   | AUTHENTICATION     | NULL    | GPL     |
+----------------------------------+----------+--------------------+---------+---------+
48 rows in set (0.00 sec)
mysql>
```



### データベース「dev」の作成
``` txt:実行ユーザー：root
mysql> CREATE DATABASE dev CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
mysql> 
```



### ユーザー「devUser」の作成
``` txt:実行ユーザー：root
mysql> SELECT User, Host, Plugin FROM mysql.user;
+------------------+-----------+-----------------------+
| User             | Host      | Plugin                |
+------------------+-----------+-----------------------+
| mysql.infoschema | localhost | caching_sha2_password |
| mysql.session    | localhost | caching_sha2_password |
| mysql.sys        | localhost | caching_sha2_password |
| root             | localhost | caching_sha2_password |
+------------------+-----------+-----------------------+
mysql> 
```

``` txt:実行ユーザー：root
mysql> CREATE USER 'devUser'@'%' IDENTIFIED WITH mysql_native_password BY '**********';
mysql>
```

``` txt:実行ユーザー：root
mysql> SELECT User, Host, Plugin FROM mysql.user;
+------------------+-----------+-----------------------+
| User             | Host      | Plugin                |
+------------------+-----------+-----------------------+
| devUser          | %         | mysql_native_password |
| mysql.infoschema | localhost | caching_sha2_password |
| mysql.session    | localhost | caching_sha2_password |
| mysql.sys        | localhost | caching_sha2_password |
| root             | localhost | caching_sha2_password |
+------------------+-----------+-----------------------+
mysql> 
```



### ユーザー「devUser」にデータベース「dev」への権限を付与
``` txt:実行ユーザー：root
mysql> show grants for 'devUser'@'%';
+-------------------------------------+
| Grants for devUser@%                |
+-------------------------------------+
| GRANT USAGE ON *.* TO `devUser`@`%` |
+-------------------------------------+
mysql> 
```

``` txt:実行ユーザー：root
mysql> GRANT ALL PRIVILEGES ON dev.* TO 'devUser'@'%';
mysql> 
```



``` txt:実行ユーザー：root
mysql> show grants for 'devUser'@'%';
+--------------------------------------------------+
| Grants for devUser@%                             |
+--------------------------------------------------+
| GRANT USAGE ON *.* TO `devUser`@`%`              |
| GRANT ALL PRIVILEGES ON `dev`.* TO `devUser`@`%` |
+--------------------------------------------------+
mysql> 
```