Для бродячего я создал сценарий начальной загрузки, который делает мои данные mysql постоянными. Он запускается через сценарий оболочки установщика с привилегированными правами.
В основном скрипт создает символику из /var/lib/mysql ->/vagrant/mysqldata. Папка /vagrant устанавливается в хост-систему, поэтому после создания этой символической ссылки все данные в mysql снова появляются
if [ ! -L /var/lib/mysql ] ; then
sudo service mysql stop
sudo mv /var/lib/mysql /var/lib/mysql-old
sudo ln -s /vagrant/mysqldata /var/lib/mysql
sudo echo "alias /var/lib/mysql/ -> /vagrant/mysqldata/," >> /etc/apparmor.d/tunables/alias
sudo service apparmor reload
sudo service mysql start
fi
Проблема в том, что после запуска этого скрипта, а затем я запускаю vagrant reload --provision
она всегда терпит неудачу с ошибкой:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
Однако, если я ssh в бродяга и вручную запускаю mysql, он работает. Я не уверен, в чем проблема.
Как вы видите в сценарии, он переименовывает старую папку данных mysql в mysql-old, и я устанавливаю, что она снова работает. Таким образом, это имеет какое-то отношение к этой символической ссылке.
Как прокомментировал Билл Карвин, я использовал постоянный модуль хранения для бродяг, который делает именно то, что я хочу.