mysqld: [Warning] World-writable config file '/etc/mysql/conf.d/my.cnf' is ignored.

公開日時

昨日の記事に書いていた、別の問題でmy.cnfがうまく読み込めていなかった件についてのメモ。

WSL2のUbuntu上でmysqlコンテナを立ち上げた際に、↓の警告が表示されmy.cnfが読み込まれない現象が起きた。

mysqld: [Warning] World-writable config file '/etc/mysql/conf.d/my.cnf' is ignored.

コンテナに入ってmy.cnfのパーミッションを確認するとたしかに777になっている。

ローカルでchmod 644 my.cnfを実行してから、再度コンテナを立ち上げ直してもコンテナ内のファイルは777になってしまう。

調べてみるとwindowsの場合はvolume mountをするとパーミッションが777になってしまうらしく、仕方がないのでmysql用のDockerfileを用意して、ビルド時にパーミッションを変更するようにした。

FROM mysql:8

ADD ./conf.d/my.cnf /etc/mysql/conf.d/my.cnf
RUN chmod 644 /etc/mysql/conf.d/my.cnf

CMD ["mysqld", "--character-set-server=utf8mb4", "--collation-server=utf8mb4_unicode_ci"]

参考


Related #docker

docker-credential-desktop.exe not installed or not available in PATH

rm ~/.docker/config.jsonしたら起動できた

Cloud Datastoreのローカル環境をDockerで構築する

CloudDatastoreエミュレータとgoogle-cloud-guiの環境を構築

Extension fieldsを使ってdocker-composeのコンテナ設定を共通化する

Railsコンテナ設定を共通化して、commandだけそれぞれで変えるようにした

docker-composeコマンドのエイリアスを作る

dcコマンドを置き換えた

Dockerでpt-query-digestを使う

コンテナのおかげで手軽にslowlog分析ができるようになった