【问题标题】:Keep vagrant database data after vagrant destroyvagrant destroy 后保留 vagrant 数据库数据
【发布时间】:2013-08-26 21:35:16
【问题描述】:

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

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

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

【问题讨论】:

    标签: ubuntu virtual-machine vagrant


    【解决方案1】:

    每当我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 文件将 mysqldump 命令运行到单独的 backup.sql 文件中。

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

    【讨论】:

      【解决方案2】:

      这取决于您使用的 RDBMS。

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

      对于 PostgreSQL 也是类似的,数据库文件通常在 cd /usr/local/pgsql/data 下。参考File System level backup

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

      【讨论】:

        【解决方案3】:

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

        [Homestead] Ideas on persisting databases upon vagrant destroy

        【讨论】:

          猜你喜欢
          • 2015-07-31
          • 2016-09-11
          • 2014-07-25
          • 1970-01-01
          • 2014-01-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-08-01
          相关资源
          最近更新 更多