【解決方法】Macのvagrantでnfsでマウントした際にゲストOSのDockerでMySQL初期化エラー

VagrantMacMySQL
【解決方法】Macのvagrantでnfsでマウントした際にゲストOSのDockerでMySQL初期化エラー
Memo

Macのvagrantでnfsでマウントした際にゲストOSで起動しているDockerで
MySQLのイメージをしようとした際に初期化エラーが発生したため
解決のための手順をメモしました。

環境

  • Vagrant 2.0.3
  • CentOS 7.4
  • Docker 18.03
  • MySQL 5.7

発生したエラー

log
Initializing database mysqld: Can't create/write to file '/var/lib/mysql/is_writable' (Errcode: 13 - Permission denied) 2018-05-21T14:40:41.055344Z 0 [ERROR] --initialize specified but the data directory exists and is not writable. Aborting. 2018-05-21T14:40:41.055433Z 0 [ERROR] Aborting

原因

ゲストOS側でホストOSとの共有ディレクトリに対してのアクセス権限がなく ファイルの書き込みができなかったためです。

解決方法

Vagrantfileに以下のように設定します。

Vagrantfile
## NFS Share config.vm.synced_folder ".", "/vagrant-nfs", type: "nfs" config.nfs.map_uid = 501 config.nfs.map_gid = 20

Vagrantをリロードします。

terminal
$ vagrant reload

設定が正しく変更されているか確認します。

terminal
$ sudo vi /etc/exports
/etc/exports
"/Users/xxxx/vagrant" 192.168.33.XX -alldirs -mapall=501:20