LoginSignup
0
0

More than 1 year has passed since last update.

MySQL公式のDockerイメージ(mysql-server)を使うときは、MYSQL_ROOT_HOSTを設定しよう

Posted at

MySQLのDockerイメージは大きく分けて2つあります。

今回は後者のmysql-serverのイメージを使用する際の注意点です。


もし実際にRailsと組み合わせて環境構築を行う際は、以下の記事を参考にしてください。


本題:MYSQL_ROOT_HOSTを設定する

compose.yaml
services:
  db:
    image: mysql/mysql-server:latest
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_ROOT_HOST: '%' # この行が必要
    ...

ここのMYSQL_ROOT_HOST: '%'の指定が必要です。

何をやってるか?

もしDocker公式のMySQLのイメージを使用する場合は、このMYSQL_ROOT_HOSTの指定は必要ありません。docker-entrypoint.shこの行で、デフォルトのホスト名がワイルドカード(%)に指定してあるからです。
https://github.com/docker-library/mysql/blob/master/8.0/docker-entrypoint.sh#L251

一方で、今回使用したMySQL公式が用意しているイメージ(mysql-server)では、デフォルトのホスト名はlocalhostに指定してあります。
https://github.com/mysql/mysql-docker/blob/mysql-server/8.0/docker-entrypoint.sh#L110
この場合、MySQLサーバーのコンテナ内からしかアクセスができないので、ホスト名にワイルドカードを指定する必要がある、ということです。

参考サイト

MySQLのDockerイメージ全般

今回の対処法関連

0
0
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
0
0