MySQL

【Docker】【MySQL】docker-composeで立ち上げたMySQLにAccess deniedで接続できなかったときに確認すること!

あきぞらです。

個人開発用のアプリのために、DockerMySQLのコンテナを立ち上げようと思ったところ、

Access denied」で接続できず、小一時間ハマってしまいました。

今回はその解消方法を記載していきたいと思います!

docker-compose.yml の内容

docker-compose.yml は以下のように記載していました。

mysql:
    image: mysql:5.7.11
    environment:
        - MYSQL_ROOT_PASSWORD=root
        - MYSQL_DATABASE=laravel
        - MYSQL_USER=laravel
        - MYSQL_PASSWORD=password
    ports:
        - "13306:3306"

ローカルPCからMySQLに接続を試みる

ローカルのPCからMySQLに接続してみます。

$ mysql -u root -p -h localhost -P 13306
Enter password: 
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

Access denied で返されてしまい、途方にくれてしまいました。

Access denied の原因

調べていくと、どうやらホストの指定はlocalhost ではダメなようです。

-h localhost と指定するとMySQLのインスタンスのプロセスを直接探しに行って接続しにいく、という動きになるようです。

MySQLの接続コマンドのホストを変えて解決!

localhostではなく、127.0.0.1 に変更して接続コマンドを打ってみます。

$ mysql -u root -p -h 127.0.0.1 -P 13306
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.7.11 MySQL Community Server (GPL)

無事に接続できました!

localhostでダメだった人は、127.0.0.1で試してみてください。

Docker Desktopを再起動してみる(Windows)

Windowsを使っている人は、Docker Desktopを再起動してみるのも手です!

ポートが変に競合して実はMySQLが起動できていない可能性があります。

PCごと再起動してみてもOKです。

再起動したら、もう一度 docker-compose up -dで起動させてみましょう。

うまくかもしれません。

では、また!

-MySQL
-,

Copyright© あきぞらてっく , 2025 All Rights Reserved Powered by AFFINGER5.