amazon

Docker(docker-compose)で Mysql5.7 起動に失敗した場合の対応

前書き

新しい案件で、MySQL5.7 起動時にエラーで結構はまりました。

5.6 では発生しなかったのでいろいろ調査&対応したので記載しておきます。

環境

  • Ubuntu 18.04.4(win10 + WSL2)
  • docker: 19.03.8
  • docker-compose: 1.25.5

対象となった yml 部分

version: "3"
  services:
    mysql:
      image: mysql:5.7
      hostname: mysql
      volumes:
        - ./tmp/mysql:/var/lib/mysql

発生エラーと解決法

1. Can’t change permissions of the file ‘ca-key.pem’ (Errcode: 1 – Operation not permitted)

原因と思わしきもの

記事[1]にあるようにオーナーがローカルと Docker で異なってしまっていたようです。

対応

yml を以下のように変更します。

version: "3"
  services:
    mysql:
      image: mysql:5.7
      hostname: mysql
      volumes:
        - ./tmp/mysql:/var/lib/mysql
        - /etc/group:/etc/group:ro
        - /etc/passwd:/etc/passwd:ro
      user: "1000:1000"

user の値は 「id -u」「id -g」で自身のIDとグループ ID を設定します

2. Can’t create/write to file ‘/var/lib/mysql/is_writable’ (Errcode: 13 – Permission denied)

原因と思わしきもの

1 の対応後に出てきました。1のエラー時に mysql フォルダが作られ、それに権限がないためでしょう。

確認するとmysql フォルダは root ユーザで作られていたため、追記したユーザでは書き込めないことでした

対応

/tmp/mysql の権限を書き込み可にするか、オーナを自身に変更します

参考

[1] dockerでvolumeをマウントしたときのファイルのowner問題,
https://qiita.com/yohm/items/047b2e68d008ebb0f001

コメント

タイトルとURLをコピーしました