久しぶりにゼロから 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
13306
とかにしておくのが (わかりやすさ優先なら) 無難そう。
- ports: 13306:3306
該当のエラーは、公式の一覧見てもよくわからねえのだった。 (5.7 の一覧しか見つからなかった)