1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

failed to connect: ** (MyXQL.Error) (1044) (ER_DBACCESS_DENIED_ERROR) Access denied forでUserの権限に原因があった記録

Last updated at Posted at 2021-02-15

前提

今回の事象は通常起こることは無いかと思います。:sweat:
下記の前提条件で、表題のエラーに遭遇しました。

  1. docker-compose(Elixir+MySQL)を実装中に発生
  2. その時コンテナを作ったり消したりを繰り返していた
  3. DBコンテナのボリュームは消していないこともあった
  4. mysqlで初回実行するクエリもいじっていた。
  5. クエリは下記のような権限に関するものだった。
GRANT ALL PRIVILEGES ON *.* TO 'app'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

結論、上述のトライアンドエラーの中で必要だったことは、

  • コンテナを整えるときは、DBコンテナのキャッシュやボリュームをちゃんと消す

です。

このエッジケースにおいて何が原因だったのかを後述します。

事象


app_1  | [error] MyXQL.Connection (#PID<0.315.0>) failed to connect: ** (MyXQL.Error) (1044) (ER_DBACCESS_DENIED_ERROR) Access denied for user 'service'@'%' to database 'service_dev'
mysql> select * from user_privileges;
+----------------+---------------+----------------+--------------+
| GRANTEE        | TABLE_CATALOG | PRIVILEGE_TYPE | IS_GRANTABLE |
+----------------+---------------+----------------+--------------+
| 'service'@'%' | def           | USAGE          | NO           |
+----------------+---------------+----------------+--------------+
1 row in set (0.00 sec)

INFORMATION_SCHEMA USER_PRIVILEGESテーブルを確認してみる。
https://dev.mysql.com/doc/refman/5.6/ja/information-schema-user-privileges-table.html

PRIVILEGE_TYPE:USAGEというのは権限が全く無い。
参考:MySQLの権限一覧
https://dev.mysql.com/doc/refman/5.6/ja/privileges-provided.html

PRIVILEGE_TYPE:Createであるべき。

1
0
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?