Docker上のMySQLにDBクライアントから接続する

Docker上のMySQLにDBクライアントから接続したい

ローカルPC環境や開発サーバー環境でMySQLをDocker上に配置する場合があると思います。ターミナルで頑張って操作するケースもありますが、MySQL WorkbenchやDBeaverなどDBクライアントを接続する場合が多いのではないでしょうか?
Docker上のDBにDBクライアントで接続するときにハマったので接続方法を晒しておきます。

前提

  • ローカル環境
    • ローカルのMacのDocker上にMySQLを設置
    • MySQLはalpineベース
  • 開発環境
    • ローカル環境のDBを開発環境にデプロイしたイメージ
    • SSHで接続するサーバー(.ssh/authorized_keysにPCの公開鍵が設定されている)
    • CentOS上のDockerにMySQLを設置
    • MySQLはalpineベース

ローカル環境の場合

ローカルPC上この場合はそんなに難しくなくIPにループバックアドレスを設定すればいいだけです。

↓のようにループバックを設定し、

↓SSHには何も設定する必要はありません。

開発環境の場合

少しハマったはここからですが、SSHの場合はまずSSHのログインを設定しておきます。
↓のような感じです。

そして、↓のようにローカルと同じようにループバックアドレスを設定すると接続することができます。

SSHしてDBに接続するイメージですかね。。

閑話休題

Macで自分としてはベストなアプリだったんですが、2016年移行メンテが終わってるみたいでMySQL 8も使えないようです。。とりあえずDBeaver使ってるのですが、何かいいアプリがあれば教えてください〜。(開発で頻繁にDB触る機会があれば有料に手を出してもいいんですが、クライアント側開発が中心であまりDBは触る機会がないんですよね・・)