discuz搬家最快的办法 rsync迁移文件mysqldump备份还原数据库

 xiezixing @ 2019-01-13 23:41:01

discuz后台管理中是自带的有一个数据库备份的功能,但是如果你的数据库非常非常大,那么在其中操作将会非常非常慢,这是非常不值得的一件事情,而且如果你附件文件超过10G,下载回本地再上传到新服务器也是极度痛苦,所以今天我来教大家什么才是discuz搬家应该的样子。

第一步、使用rsync整站迁移

如果discuz附件超过10G,如果你还是将整站目录下载到本地,然后又重新上传到搬家的那台服务器,你将感受到痛苦,所以我教大家如何利用rsync命令进行整站迁移。
假如目前论坛所在文件夹为/www/wwwroot/discuz,服务器ip为192.168.1.1,ssh登录用户为ROOT,密码123456。
需要迁移到的服务器IP为192.168.1.2,放置网站文件夹的位置为/www/discuz。
让我们来看看怎么做,先SSH登录192.168.1.2,然后输入以下命令:

screen -S qianyi
rsync -av root@192.168.1.1:/www/wwwroot/discuz/* /www/discuz

screen是专为长时间任务准备的命令行,如果中途断开SSH,只需要重新进入SSH然后输入screen -r qianyi,就可以重新回到断开之前的操作步骤,rsync命令行指的是将远程192.168.1.1上面/www/wwwroot/discuz里边的所有文件传输到本机的/www/discuz,传输速度非常快,我1G的数据差不多几分钟就可以迁移完毕。

第二步、mysqldump命令行迁移数据库

mysql数据库也是必须要迁移的一个东西,如果直接在discuz后台管理中心操作数据库备份还原,速度慢不说还经常会出错,根本没办法使用,可能会造成数据的永久性丢失,所以我来教大家正确的做法。
假如192.168.1.1待迁移的这台服务器的discuz的数据信息为:账号mysql,密码mysql,数据库discuz。
192.168.1.2这台的数据库信息为:账号mysql1,密码mysql1,数据库为discuz1。
先在192.168.1.1操作mysqldump备份数据库:

mysqldump -u mysql -p disuz > bei.sql

之后会让输入数据库密码,输入mysql,稍等一会就会当前目录生成一个备份文件bei.sql。如果这个文件非常大还可以使用zip命令压缩下。

zip xxx.zip bei.sql

压缩包一般会超过85%,实测,我一个G的数据库备份文件,压缩下来大概是180多MB。
有了备份文件之后,再使用第一步rsync将其传输至新服务器中。然后在新服务器中的操作如下:

unzip xxx.zip
mysql -u root -p

先将压缩包解压,解压出来备份文件,再连接本地数据库,然后使用备份文件进行还原。

use mysql1
source /root/bei.sql

稍等一会,就导入完毕。

第三步 更换域名到新IP

直接更换域名解析到新的IP,热搬家就这样完成了。我有一个discuz论坛,10G文件,1G数据库,搬家整个过程不超过40分钟。

涉及运维知识:mysqldump rsync screen

discuz
搬家
回复