场景:因服务器A要停用,将服务器A中gogs服务迁移到服务器B中;保证B中gogs服务无任何异常后,才可释放A服务器
一、准备工作:
服务器A:192.168.1.20
服务器B搭建mysql5.7数据库 192.168.1.30
服务器B搭建gogs远程仓库 192.168.1.30
二、gogs仓库迁移
1、备份gogs仓库
服务器A中代码仓库目录:(根据搭建gogs仓库的参数设置来的) /server/docker/gogs/data/git/gogs-repositories 备份: tar -zcvf gogs-repositories.tar.gz gogs-repositories
2、备份数据库
使用navicat客户端连接mysql数据库,导出数据库结构和数库(gogs.sql) 或者在服务器:mysqldump -h localhost -u gogs -P 3306 --no-tablespaces -p gogs> /root/gogs.sql
3、登录数据库B创建账户、授权
登录mysql数据库,并执行: create database gogs; #创建gogs数据库 grant all privileges on gogs.* to gogs@'%' identified by 'gogs'; #创建用户并授权 flush privileges; #刷新权限
4、还原数据库
使用navicat客户端登录数据库,将gogs.sql导入
或者在服务器mysql命令
use gogs
source /root/gogs.sql
5、访问gogs页面,配置信息
访问gogs页面:192.168.1.30:10080 填写安装程序所需的信息:
根据实际情况配置,图上信息不正确,只是展示用
6、替换gogs仓库
将A服务器备份的gogs-repositories上传到服务器B,替换gogs仓库
然后重启服务器B的gogs服务:
docker restart gogs
迁移完成。如没有任何问题,观察几天再释放服务器A,以免出错。