MySQLでデータベースを作成する際に「Access denied」が出たときの対処法を解説します。

Access deniedが出る原因
データベースを作成する際に、ユーザーに権限がないと「Access denied」のエラーが出ます。
mysql> CREATE DATABASE test_db;
ERROR 1044 (42000): Access denied for user 'test_user'@'localhost' to database 'test_db'
「Access denied」が出た際には、ユーザーに権限を追加することで、データベースを作成することができます。
データベース作成権限の付与
一般ユーザーにデータベース権限を付与するには、ルートユーザーでログインし、一般ユーザーに権限を付与します。
ルートユーザーでログイン
$ sudo mysql -u root@localhost -p
Enter password:
一般ユーザーに権限の付与
mysql> GRANT CREATE on *.* to test_user@localhost;
Query OK, 0 rows affected (0.01 sec)
権限の確認
権限が付与できているか確認します。
mysql> SHOW GRANTS for test_user@localhost;
+------------------------------------------------+
| Grants for test_user@localhost |
+------------------------------------------------+
| GRANT CREATE ON *.* TO `test_user`@`localhost` |
+------------------------------------------------+
1 row in set (0.00 sec)
test_userにCREATE権限が追加されています。
データベースを作成
権限付与したユーザーでログインし、データベースを作成します。
$ mysql -u test_user -p
Enter password:
mysql> CREATE DATABASE testr_db;
Query OK, 1 row affected (0.00 sec)
データベースの確認
mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| discord_member_db |
| information_schema |
| test_db |
+--------------------+
データベースが作成されています。