at backyard

Color my life with the chaos of trouble.

mac上のDockerに立ち上げたmysqlに、host(mac)から接続する

基本的なことなのかもしれないけど、個人的な備忘録としてこちらにメモしておく。
最後に書いてあるが、ホストから接続するときに個人的に少しハマったので、それに関することも含め残しておきたかった。

以下、dockerでmysql取得・起動してhostのmacから接続するまでのコマンドメモ ※なお、開発用のユーザ名なども同時に作成する前提で書いている。ユーザ名などの設定している項目については{}で記載。

# mysql取得
docker pull mysql

# docker起動
docker run --name {name} -p 3306:3306 -e MYSQL_DATABASE={database_name} -e MYSQL_USER={username} -e MYSQL_PASSWORD={password}  -e MYSQL_ROOT_PASSWORD={root_password} -d mysql

# docker起動(設定ファイル読み込んで起動する場合)
docker run  -v {.cnf_path}:/etc/mysql/conf.d -d --name {name} -e MYSQL_DATABASE={database_name} -e MYSQL_USER={username} -e MYSQL_PASSWORD={password}  -e MYSQL_ROOT_PASSWORD={root_password} -d mysql

# host(mac)から接続 -> macにmysqlクライアントがある前提
mysql -u {username} -h localhost {database_name} --protocol=tcp -p
# -> パスワード入力してログイン

### ちなみにdocker自体に接続する場合

# docker接続
docker run --link  mysqld:mysql -it --rm mysql bash

# 環境変数チェック(接続したdocker内で)
env

# mysql接続
mysql -u {username} -p{password} -h $MYSQL_PORT_3306_TCP_ADDR {database_name}
# -> パスワード入力しないでログインできる

docker runするときに-p 3306:3306を付け忘れていて、なんてホストから接続できないんだろう??と少しハマってしまっていた。