###docker上にmysqlイメージをデフォルト(localhost:3306)で構築したのに、ホストマシンのコンソールからつながらないよ!ぴえん!ってなっている人はホスト名を127.0.0.1で試してみてください。
Dockerfile
FROM mysql:8.0
ENV TZ=UTC \
MYSQL_DATABASE=laravel_local \
MYSQL_USER=phper \
MYSQL_PASSWORD=secret \
MYSQL_ROOT_PASSWORD=secret
COPY ./my.cnf /etc/my.cnf
$ mysql -u phper -psecret
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
こんな風に、何もしてないのにつながらないの!なんで!
それは、 -h オプションを省略しているからです。
つながるよ
$ mysql -u phper -psecret -h 127.0.0.1
mysql>
つながらないよ
$ mysql -u phper -psecret
> ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
-h オプションを抜くと、デフォルトでmysql clientはlocalhost:3306を見に行きます。
dockerの127.0.0.1とlocalhostは異なる扱いなので気をつけてね!