因有台服务器快到期,也不想续费了。逐渐把上面的功能往其它服务器上转移。这次转移的功能是gogs,一个基于golong开发的git服务器。
目标:从old.com 迁移到 main.com
需要操作的对象:相关文件,mysql数据
工具:scp mysqldump
先是把服务停了,然后根据pid kill掉进程
ps aux | grep gogd
sudo kill -9 XXXX
然后把文件从old.com迁移到main.com上去
gogs主要有两个文件夹
gogs
gogs-repositories
因此先打包,在old.com下操作
cd ~/document zip -r gogs.bak.zip ./gogs zip -r gogs-repos.bak.zip ./gogs-repositories
然后通过mysqldump命令把gogs数据库生成.sql文件
mysqldump -u user -p --batabases gogs > ~/document/gogs.sql
在main.com下新建目录,进入目录后把zip文件从old.com 通过scp迁移到main.com中
在main.com下操作
mkdir /gogsroot
cd gogsroot
scp user@old.com:/admin/document/gogs.bak.zip /gogsroot
scp user@old.com:/admin/document/gogs-repos.bak.zip /gogsroot
scp user@old.com:/admin/document/gogs.sql /gogsroot
导入数据用的是图形数据库工具
使用mysql命令行导入,登录数据库
mysql -u user -p
然后用source命令导入sql文件
mysql> source /gogsroot/gogs.sql
这里一开始遇到一个问题,报错(max key length is 767 bytes),解决方法在这里 记一个mysql的问题
数据导入完成后修改app.ini文件
nano gogsroot/gogs/custom/conf/app.ini
配置如下
APP_NAME = Gogs
RUN_USER = root
RUN_MODE = prod
[database]
DB_TYPE = mysql
HOST = 127.0.0.1:3306
NAME = gogs
USER = user
PASSWD = xxxxxxxxxx
SSL_MODE = disable
PATH = data/gogs.db
[repository]
ROOT = /gogsroot/gogs-repositories
[server]
DOMAIN = main.com
HTTP_PORT = 3000
ROOT_URL = http://main.com:3000/
DISABLE_SSH = false
SSH_PORT = 22
START_SSH_SERVER = false
OFFLINE_MODE = false
[mailer]
ENABLED = false
[service]
REGISTER_EMAIL_CONFIRM = false
ENABLE_NOTIFY_MAIL = false
DISABLE_REGISTRATION = false
ENABLE_CAPTCHA = true
REQUIRE_SIGNIN_VIEW = false
[picture]
DISABLE_GRAVATAR = false
ENABLE_FEDERATED_AVATAR = false
[session]
PROVIDER = file
[log]
MODE = file
LEVEL = Info
ROOT_PATH = /gogsroot/gogs/log
[security]
INSTALL_LOCK = true
SECRET_KEY = XXXXXXXXXXXX
主要改的就是database、repository、server和log关于域名和路径的地方。
然后在gogsroot下执行
./gogs/gogs web &
测试一下
OK,打完收工。