BitNami Redmine搬家

BitNami Redmine的搬家一年前,尝试过一次,结果以失败告终,不得已,采用新旧机器之间逐条记录拷贝的方法,累得我够呛。

网上有些人建议安装同样的版本,然后使用原有的redmine覆盖新的,这个方法我已经试过了,结论是不可以。那么覆盖部分可不可以呢?答案还是不可以,这个我已经试验过了。

那么什么方法可行了?我们简略的分析一下BitNami Redmin的架构,就有答案了。

redmine其实只是一个采用Rails框架,使用Ruby作为开发语言的web 应用程序。它本身是不可以提供的服务的,需要依托web服务器-apache,数据库-mysql。因此你可以自己安装这些组件,然后再把Redmine部署上去。而BitNami Redmine其实就是一个将这些组件打包成一个安装包,省去了我们很多的步骤。这里插一句,其实你会发现较新的版本,2.3.00,有了另外一个组件-phpMyAdmin,你在安装的时候发现他是可选的,不是必须的。那么像这样的结构你可能都知道,真正的数据都存在数据库中,这里其实就mysql。因此BitNami
Redmin的搬家其实主要是mysql的数据的搬家,不过不是全部,后面会有补充。

关于mysql的搬家部分请参考我的另外一篇博文:

mysql的备份和还原

不过有个问题,在安装的时候我们并没有指定mysql的用户名和密码,只是指定了mysql的监听的端口,那么默认的用户和密码是什么,其实有2个,一个是安装的时候设定的redmine的用户名和密码(这个是管理员的用户和密码),还有一个是mysql的root,用户名就是root,密码和管理员的密码是一样的。

但是这两个用户的权限是区别的,如果你以管理员的身份登录的话,只能看到2个database,information_skema和test;而root是可以看到任何database的

information_skema

test

performance_skema

mysql

bitnami_redmine

而我们真正redmine的数据时存在mysql和bitnami_redmine这2个数据中的,因此我们需要用root这个用户-也就是mysql的超级用户。

接下来备份原有的数据

mysqldump -uroot -p -P3308 mysql>mysql.sql

这里3308是安装BitNami Redmine的设定的mysql的监听端口,根据你自己的设定,做相应的改动。

执行这个命令,你会得到一个错误:

mysqldump: Couldn’t execute ‘SELECT @@GTID_MODE’: Unknown system variable ‘GTID_MODE’

原因就不解释了,直接告诉你解决方法,加上下面的选项,注意s前面是2杠

–-set-gtid-purged=OFF

命令变成:

mysqldump -uroot -p -P3308 –-set-gtid-purged=OFF mysql>mysql.sql

备份完mysql database之后,再备份bitnami_redmine

mysqldump -uroot -p -P3308 –-set-gtid-purged=OFF bitnami_redmine>bitnami_redmine.sql

接下来就是新机器上面还原这些database,

mysql -uroot -p -P3308 mysql<mysql.sql

mysql -uroot -p -P3308 bitnami_redmine<bitnami_redmine.sql

这样database的备份部分就已经完成。

做到这里还没有结束,因为不是所有的数据都别存在数据库中,比如我们上传的文件时存在redmine的文件夹中的。

因此还需要把这个文件夹中的所有文件都要拷贝过去,这个文件是在

apps/redmine/files

这个目录下面。

如果你配置了email信息的话,还需要拷贝config文件。

版权所有,禁止转载. 如需转载,请先征得博主的同意,并且表明文章出处,否则按侵权处理.

    分享到:

Leave a Reply

Your email address will not be published. Required fields are marked *