まずコマンドラインでの接続方法おさらい
Dockerのコンテナをcliで操作していれば、調べずともたどり着くやり方かと思います。
コンテナへSSH接続 〜 mysqlコンテナ内でmysqlコマンド実行
SSH接続
$ docker exec -it $MYSQL_CONTAINER_NAME bash
でコンテナ内部に入り、あとは作成したMySQLユーザでmysqlコマンドを打てばよい。
$ mysql -uroot -p db_name
基本的にこれで対応できないことは無いかと思いますが、調査&デバッグやデータ調整が頻繁になってくるとMySQLWorkbenchでやりたくなってきます。
MySQLWorkbenchからコンテナDBへの接続方法
mysqlイメージから単体でコンテナを起動した場合(Docker for macなど)
コンテナへ直接接続する
MySQL Connectionsに設定を追加
Connection Method: Standard
を選択
Hostname : 127.0.0.1
Port : 3306
(docker run
時の特に指定してなければ)
Username : root
Password : docker run
時の指定した環境変数
docker machineを使っている場合
VMを通してSSHトンネル接続させる
MySQL ConnectionsにSSH設定を追加
-
Connection Method:
Standard TCP/IP over SSH
を選択 -
SSH Hostname:
$ docker-machine ip $DOCKER_MACHINE_NAME
↑で出力されるIPを入力
-
SSH Username:
docker
-
SSH Password:
tcuser
上記を入力(docker machineにデフォルトで作られるユーザ)
MySQL設定を追加
docker composeで構成していれば、docker-compose.ymlで設定した値(MYSQL_DATABASE
など)
を以下パラメータに設定
- MySQL Hostname
- MySQL Server Port:
- Username:
- Password:
- Default Schema:
MySQLコンテナ単体であれば、[mysqlイメージから単体でのコンテナ起動の場合]と同様。
設定完了後
「Test connection」を押してsucceed
が出れば成功。