AR ホームベーカリー

オイラのアウトプット用ホームベーカリー!

docker(-compose) で MySQL を組み込む時の注意

久しぶりにゼロから docker-compose.yml 書いててハマったので。

常日頃から触ってないとわすれがちなの、トシを感じる。

ホスト側から MySQL CLI でコンテナ側の MySQL server へログインするとき

ホスト名は localhost を使用せずに 127.0.0.1 を指定する、 Docker の localhost はホストの解釈する世界とは違う。

❯ mysql -u MySQL_USER -pPASSWORD -h 127.0.0.1 -P PORT DATABASE_NAME

ports に 33060(:3306) を指定してはいけない

デフォルトで予約されているポート番号が 3306 なので、なんか追加して簡単に済ませがちだけど、フォワード先を 33060 にするとエラーになる。

MySQL said: Protocol mismatch; server version = 11, client version = 10

qiita.com

13306 とかにしておくのが (わかりやすさ優先なら) 無難そう。

- ports:
  13306:3306

該当のエラーは、公式の一覧見てもよくわからねえのだった。 (5.7 の一覧しか見つからなかった)

dev.mysql.com