LoginSignup
4
3

More than 1 year has passed since last update.

DockerのMySQLコンテナにSequelProで接続する方法

Last updated at Posted at 2021-11-15

はじめに

DockerのMYSQLコンテナにSequelProを接続しようとしたところ、アクセスを拒否されてしまったので、正しい接続方法について調べました。

この記事では、その成功した方法について記します。

ステップ① まずdocker-compose.ymlを確認

docker-compose.ymlの中身を確認して、現在のDB(MySQL)コンテナの設定がどうなっている確認する。

version: '3'
services:
  web:
    build: .
    command: bundle exec rails s -p 3000 -b '0.0.0.0'
    volumes:
      - .:/app
    ports:
      - 3000:3000
    depends_on:
      - db
    tty: true
    stdin_open: true
  db:
    image: mysql:5.7
    volumes:
      - db-volume:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: *******
volumes:
  db-volume:

某UdemuyのRailsの教材通りにdocker-compose.ymlを記述したのでこんな感じ。

はじめてのDockerを使った開発だったので、SequelProにいつも通り接続してみるとデータベース一覧にあると思っていたデータベース名が無いことに気づく。

「あ、あれ〜?汗」

ステップ② 検索してみると、「port」と「port番号」の記述が必要だとわかる

どうしたらDockerのMySQLコンテナにSequelProで接続できるのか検索してみたところ、docker-compose.ymlファイルのDB(MySQL)コンテナ下に「port」と「port番号」の記述が必要だとわかる。

【修正前】

  db:
    image: mysql:5.7
    volumes:
      - db-volume:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: *******

【修正後】

  db:
    image: mysql:5.7
    volumes:
      - db-volume:/var/lib/mysql
    ports:
      - '4306:3306'
    environment:
      MYSQL_ROOT_PASSWORD: *******
      MYSQL_USER: root
      MYSQL_DATABASE: root
      MYSQL_PASSWORD: *******

新しくportsとports番号を追加。(enviromentにも何行か追加)

このport番号の「4306:3306」だが、「3306:3306」でも良いらしいが、localhostですでにmysqlを利用している場合は4306にしなくちゃいけないとのこと。

docker-compose.ymlを編集したら「docker-compose up -d」でコンテナを起動。

ステップ③ SequelProに接続してみる

スクリーンショット 2021-11-15 22.57.19.png

SequelProを開いて、画像赤枠の「標準」をクリック。

スクリーンショット 2021-11-15 22.58.09.png

docker-compose.ymlに記述した通り、ポートは4306にする。ホストは「127.0.0.1」になっているが、ここら辺については以下の記事が参考になった。

参考記事:「127.0.0.1とlocalhostと0.0.0.0の違い
参考記事:「localhost と 127.0.0.1 の違い

スクリーンショット 2021-11-15 22.58.22.png

データベース一覧を見たところ、しっかりSequelProで見れるようになってた!感動。

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3