え、久々にDBeaver使ってER図でも出してシステム見るかーって思ったらMySQL接続できないんだけど。
検証1 my.confの設定か?
skip-name-resolve
を追加してみるか。まぁ個人開発だしいいよね〜。
結論 ❌
ダメやん。
とりあえず、ポートが外向きになっているか確認しよう。。。
db:
build:
context: ./docker/mysql
dockerfile: Dockerfile
ports:
- "3306:3306"
なってんなー、外向きだし一般的な設定してるよね、、あれー?普通にいけなかったっけ。
DBeaver出力
Access denied for user 'hogehoge'@'localhost' (using password: YES)
あれ?なんかローカルに向いてない?127.0.0.1をホストにしてるからこの場合
Access denied for user 'hogehoge'@'localhost' (using password: YES)
になるんじゃ、、、?
ここから大捜索。DBeaverの設定で、TCP/IP接続に修正する方法はないか、、、海外のサイトたくさん見たけど。それらしいものは見つからず。
とある設定を目にした。
ん?これローカルのMySQL見にいくようになってる?
結論
必ずしもローカルのMySQLを見にいくようにはなっていないが、ローカルのMySQLが起動しているとそっちを先に解決して接続しにいってしまう。
今回はDockerで立ち上げていたけど、常にローカルのMySQLが先に解決されてたことにより、TCP/IP接続できておらず、Socket接続になっていた。コンテナで登録したユーザー情報じゃローカルのMySQLには接続できないよね。
総括
もし、接続できなくて困ってたら、こんなあっけない結末もあるので、ローカルのMySQLの存在確認とランニングの状況は確認しておいたほうが良いですね。
