9
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

WSL2上のDockerでMySQLを構築する際のpermissionsの対策

Posted at

前書き

WSL2 MySQLで検索してもなかなかpermissionの解決方法が見つからずにハマった人の為に記載する。(どいつもこいつもWindowsのDockerとリンクしやがって・・・GPU使わんのかい!)

環境

  • Windows10 Insider Preview 2004(20206.1000)
  • 4.19.128-microsoft-standard
  • Ubuntu 20.04 LTS

現象

docker-compose up -dでコンテナ起動をさせると以下のような感じでMySQLのコンテナが起動できない。

root@pc-name: docker-compose logs mysql
mysql_1   | mysqld: Cannot change permissions of the file 'private_key.pem' (OS errno 1 - Operation not permitted)
mysql_1   | 2020-09-10T05:04:53.449233Z 0 [ERROR] [MY-010295] [Server] Could not set file permission for private_key.pem
mysql_1   | 2020-09-10T05:04:53.449629Z 0 [ERROR] [MY-010119] [Server] Aborting

こいつ(permission)の対応策について記載したい

対応

/etc/wsl.confにマウントオプションを追加する。

追加するマウントオプション
[automount]
options = "metadata"

WSL2初めの方は基本存在しないと思うので以下の手順で対応する。
WSL2のディストリビューションに/etc/wsl.confを作成。

# ルートでログイン
user@pc-name:sudo -i
# wslのディストリビューションにwslの設定ファイルを新規作成
root@pc-name: sudo touch /etc/wsl.conf
# 設定ファイルを編集する。
root@pc-name: vi /etc/wsl.conf

マウントオプションを変更する。 iでviコマンドをinsertモードにして以下を入力。

[automount]
options = "metadata"

ESCを押下後、上書き保存(:wq)し、WSLを再起動。

# ルートログアウト
root@pc-name:exti
# wsl ログアウト
user@pc-name:exit
# WSL シャットダウン
wsl --shutdown
# WSLを起動+ログイン
wsl

これで再度Docker関係でPermissionのエラーが消えていると思います。

おまけ

以下のようなログは/var/lib/mysqlのマウントディレクトリが既に存在する為
そのディレクトリを削除することで解決する。

root@pc-name: docker-compose logs mysql
...
mysql_1   | 2020-09-10T05:00:42.590708Z 0 [ERROR] [MY-010457] [Server] --initialize specified but the data directory has files in it. Aborting.
mysql_1   | 2020-09-10T05:00:42.590714Z 0 [ERROR] [MY-013236] [Server] The designated data directory /var/lib/mysql/ is unusable. You can remove all files that the server added to it.
mysql_1   | 2020-09-10T05:00:42.590777Z 0 [ERROR] [MY-010119] [Server] Aborting
9
10
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
9
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?