VagrantのboxにMySQLのデータが含まれない。
事象
vagrantにおいて、MySQLにデータを作成後、packageしてabc.boxファイルを作成しました。
別のマシンでvagrant box add xxx abc.box
を実行し、Vagrantfileを作成、vagrant up
を実行しました。
しかし、なぜかMySQLのデータだけが含まれていません。
作成したはずのデータベースが存在していないのです。
以下と同様の現象に思えます。
https://github.com/hashicorp/vagrant/issues/4818
詳細
Windows10(旧マシン)にインストールしたvagrantにて、下記のような環境を作成しました。
CentOS 6.7
MySQL 5.5
CakePHP
provider: VirtualBox
Vagrantfileの設定(変更部分)
config.vm.synced_folder "C:\work\data", "/var/www/html"
そしてMySQLにデータベースを作成し、テーブル等を追加後、下記コマンドを実行しました。
_$ vagrant halt
_$ vagrant package --output abc.box
次にabc.boxとVagrantfileを別のWindows10マシン(新マシン)へコピーし、Vagrantfileのconfig.vm.boxをxxxに合わせて、下記コマンドを実行しました。
_$ vagrant box add xxx abc.box
_$ vagrant up
2つのコマンドは成功し、vagrant ssh
でログインにできました。
mysql -u xxx -p xxx
でMySQLに接続することもできました。
しかし、show databases
を実行してみると、前のマシンで作成したはずのデータベースがありません。
確認したこと、試したこと
- MySQLのデータがホストマシン側にないか
- ホストとの共有はVagrantfileで設定した前述のみで、そこにはDBのデータは保存していない。
- 特にMySQLの設定は変更していないので、
/var/lib/mysql/{db_name}
に保存されている。
vagrant package --base {vm_name} --output abc.box
でboxを作成する。- 状況変わらず
- 旧マシンで`vagrant box add xxx abc.box'して起動する
- 作成したデータベースが見える
- 3のvmに対して
vagrant package
を行い、新マシンにaddし起動- 作成したデータベースは見えない
3で見えて、4で見えないということは、旧マシンはどこかのMySQLのDBサーバーを見ているということでしょうか?
そのような設定をした覚えはないのですが。。。
boxにMySQLのデータベースを含めて出力するにはどうすればよいのでしょうか。