I want to be able to store MySQL's data on the host machine using a shared 
folder so when typing vagrant destroy then vagrant up, the data from MySQL 
is retained. This works fine for a httpdocs directory.


I managed it in this way:

- Stop the server
- Copy the original mysql data from /var/lib/mysql to /var/lib/mysql-data
- Stop the server from running on startup
- Package the box

Then mount a shared folder, ./mysql (host) to /var/lib/mysql on the guest 

and run a provisioning script that, on the guest:

- Copies /var/lib/mysql-data to /var/lib/mysql
- Starts the server


This works fine, *most* of the time. However, sometimes the database gets 
corrupted. I'm not sure why this is but the ibdata1 file gets corrupted and 
becomes unrecoverable. I'm not sure why this is but it must be to do with 
stopping/starting the server and accessing the data folder across a shared 
folder. Obviously this isn't ideal.

To fix this, I created a systemd unit that runs mysqldump and dumps the 
database to /vagrant/database.sql and then changed vagrant to import the 
database in the provisioning script.

The systemd unit works and when shutting down the box without any shared 
folders set up, the database export is created before the server is shut 
down. However, when the .sql file is being written to a shared folder it's 
always zero bytes.  I am 90% sure this is because the vagrant halt command 
unmounts the shared folders and sends the shutdown signal. It's likely the 
shared folder is being umounted before the systemd shutdown script is run 
(or at least completed).

Is there any way to avoid this and have it save/load mysql data on the host 
rather than the guest?

-- 
This mailing list is governed under the HashiCorp Community Guidelines - 
https://www.hashicorp.com/community-guidelines.html. Behavior in violation of 
those guidelines may result in your removal from this mailing list.

GitHub Issues: https://github.com/mitchellh/vagrant/issues
IRC: #vagrant on Freenode
--- 
You received this message because you are subscribed to the Google Groups 
"Vagrant" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/vagrant-up/2aad586a-a7c7-426e-837a-1e98e7a4504a%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to