failed to connect: ** (MyXQL.Error) (1044) (ER_DBACCESS_DENIED_ERROR) Access denied forでUserの権限に原因があった記録
前提
今回の事象は通常起こることは無いかと思います。
下記の前提条件で、表題のエラーに遭遇しました。
- docker-compose(Elixir+MySQL)を実装中に発生
- その時コンテナを作ったり消したりを繰り返していた
- DBコンテナのボリュームは消していないこともあった
- mysqlで初回実行するクエリもいじっていた。
- クエリは下記のような権限に関するものだった。
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)
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
であるべき。
Author And Source
この問題について(failed to connect: ** (MyXQL.Error) (1044) (ER_DBACCESS_DENIED_ERROR) Access denied forでUserの権限に原因があった記録), 我々は、より多くの情報をここで見つけました https://qiita.com/akkiii/items/b76d8b23ca66a25bfb3a著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .