広告 MySQL

【MySQL】データベース作成でAccsess deniedが出たときの対処法

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            |
+--------------------+

データベースが作成されています。

-MySQL