こんにちは、JeffTechです。
この記事で実現できること
- Dockerで起動したMySQLコンテナにSequel Aceで接続する方法
- Dcokerで起動したMySQLコンテナにターミナルから直接接続する方法
- Dockerで起動したMySQLコンテナに入って接続する方法
説明
今回はDockerでMySQLを導入した際に、Sequel AceでMySQLに接続しようとしたらローカルのMySQLに繋がってしまったので、どうすればDockerで使っているMySQLにアクセスできるのかを説明していきます。
開発環境
- Docker
- macOS Catalina
- MySQL
実装の流れ
- docker-compose.ymlの編集
- Dockerで起動したMySQLコンテナにSequel Aceで接続する方法
- Dcokerで起動したMySQLコンテナにターミナルから直接接続する方法
- Dockerで起動したMySQLコンテナに入って接続する方法
実装
docker-compose.ymlの編集
version: "3"
services:
db:
image: mysql:5.7
container_name: db [MySQLのコンテナ名]
environment:
MYSQL_DATABASE: database [データベース名]
MYSQL_ROOT_PASSWORD: root [ルートユーザーのパスワード]
MYSQL_USER: user [ユーザー名]
MYSQL_PASSWORD: password [パスワード]
ports:
- 4306:3306
volumes:
- mysql-data:/var/lib/mysql
ports:
が4306:3306
になっています。これは、DockerのMySQLコンテナの3306番とローカルのポート番号4306番を繋ぐようにに設定しています。
元々私の場合ports:- "3306:3306"
となっていたため、ローカルのMySQLと競合してしまい、接続できませんでした。
Dockerで起動したMySQLコンテナにSequel Aceで接続する方法
TCP/IP
Name: docker-mysql [好きな名前で大丈夫です]
Host: 127.0.0.1
Username: user [docker-compose.ymlで設定したユーザー名]
Password: password [docker-compose.ymlで設定したパスワード]
Database:
Port: 4306
Dcokerで起動したMySQLコンテナにターミナルから直接接続する方法
まず、MySQLコンテナに入ってください。
$ docker-compose exec db bash
// dbはdocker-compose.ymlで設定したコンテナ名です。
root@1abc11111d1e:/#
という感じになっていればコンテナ内に入れていますので、下記のコマンドでMySQLに接続しましょう。
$ mysql -u user -p
// userはdocker-compose.ymlで設定したユーザー名です。
パスワード入力を求められるので、docker-compose.yml
で設定したパスワードを入力してください。
mysql>
となっていれば成功です。
Dockerで起動したMySQLコンテナに入って接続する方法
$ mysql -u user -p -h 127.0.0.1 -P 4306
// userはdocker-compose.ymlで設定したユーザー名です。
// 127.0.0.1は皆さん共通で、localhostとせずIPアドレスを直で入力します。
// ポート番号を指定するためには`-P`とpを大文字にしてください。
// 4306はdocker-compose.ymlで設定したポート番号です。
最後に
少しでも役に立った!という時は、いいねをポチッとして
フォローしてくださると嬉しいです、、、笑
役に立たなかった時は、怒らないでコメント頂けますと幸いです笑
Twitterもやってますので、よかったら見てみてくださいね!
https://twitter.com/jefftechsaku