8

在 Vagrant 销毁后保留数据库数据的最佳/可接受的做法是什么?

我应该为我的数据库数据创建一个共享文件夹吗?如果是这样(默认情况下)ubuntu 将此类数据存储在哪里?

我忘了提到我的主机和来宾操作系统是 Ubuntu,我指的是 MySql

4

3 回答 3

5

我需要一种方法来备份我的数据库,无论何时我vagrant destroy使用实例或者如果盒子发生了某些事情,我需要终止进程从而丢失数据。我主要使用 CMS 系统,并且持久化后端数据库非常重要。

我已经共享了一个db文件夹,其中包含配置时使用的 sql 文件。我安装了vagrant-triggers插件,并让它在我运行vagrant destroy命令时运行 mysqldump.sh 脚本文件。

config.trigger.before :destroy do info "Dumping the database before destroying the VM..." run_remote "bash /home/vagrant/db/mysqldump.sh" end

mysqldump.sh 文件对单独的 backup.sql 文件运行 mysqldump 命令。

mysqldump -u root database > /home/vagrant/db/backup.sql

于 2016-06-23T12:52:00.743 回答
2

这取决于您使用的 RDBMS。

对于 Ubuntu 上的 MySQL,您可以简单地备份(tar或备份rsync到远程主机)/var/lib/mysql 文件夹(当 mysql 未运行时)及其配置文件/etc/mysql

对于 PostgreSQL,情况类似,数据库文件通常位于 cd 下/usr/local/pgsql/data。请参阅文件系统级备份

注意:避免使用默认值vboxsf在来宾和主机之间共享大量文件,因为它存在已知的性能问题。

于 2013-08-26T23:39:38.250 回答
0

在框外映射数据库数据似乎是一个很好的解决方案:

[Homestead] 关于在 vagrant destroy 时持久化数据库的想法

于 2015-03-14T21:12:20.910 回答