公司的gitlab服务器是前任运维搭建的,用户管理用的ldap是apacheds,现在经常出现用户被锁,有几次自己的管理员账号都被锁了,还好有备用的管理员账号才得以脱险,现在忍不了准备利用gitlab的backup文件迁移数据库。

通过backup还原gitlab需要两边的gitlab版本一致,查到目前使用的版本是8.6.1,于是上官网下载,在新服务器部署好,修改url后,让gitlab先跑起来在去导备份文件(16G左右)。通过gitlab-rake gitlab:backup:restore BACKUP=xxx 导入备份文件,发现总报数据库语法错误,单独解压tar包,把sql导入到postgres里没问题啊....对比了半天现在生产环境的gitlab默认的是mysql5.5数据库,刚在官网下载的默认是postgres数据库,心塞...先把刚部署的gitlab数据库改成mysql吧

现在生产数据库是mysql5.5

刚部署的gitlab 数据库是postgresql

安装mysql,建库,赋权。

添加mysql源

vim /etc/yum.repos.d/mysql.repo

[mysql56-community]

name=MySQL 5.6Community Server

baseurl=http://repo.mysql.com/yum/mysql-5.6-community/el/6/$basearch/

enabled=1

gpgcheck=0

安装mysql

yum install mysql-community-server mysql-devel

/etc/init.d/mysqld start  启动mysql

mysql_secure_installation  初始化

mysql –u root –p

创建数据库和赋权

CREATE DATABASE IF NOT EXISTS `gitlab_production` DEFAULT CHARACTER SET `utf8` COLLATE `utf8_unicode_ci`;

GRANT all privileges ON gitlab_production.* TO 'gitlab'@'%' identified by 'channel' with grant option;

flush privileges;

2.修改gitlab配置如下

vim /etc/gitlab/gitlab.rb

vi  /opt/gitlab/embedded/service/gitlab-rails/.bundle/config

将mysql替换成postgres

安装插件ruby插件,要不然执行gitlab:check 会报错,如果没有安装mysql-devel库也会有提示的。

cd /opt/gitlab/embedded/bin/

./gem install -i/opt/gitlab/embedded/service/gem/ruby/2.1.0 mysql2

./gem install -i/opt/gitlab/embedded/service/gem/ruby/2.1.0 mysql2 -v "0.3.20"

通过gitlab-rake gitlab:setup初始化mysql数据库,按照提示输入yes就好了

再次gitlab-rake gitlab:check 通过了,重启gitlab查看数据库变化。

登录gitlab,发现数据已经切换成mysql了.

将备份文件tar包传到新服务器/var/opt/gitlab/backups目录,注意将文件所属修改为git:git

先停止和数据库有关的服务在还原备份。

gitlab-ctl stop unicorn

gitlab-ctl stop sidekiq

gitlab-rake gitlab:backup:restore BACKUP=1527394255

特么的,还有sql语法错误,我就郁闷了仔细看了下错误提示,原来是有个表名keys占用了关键字,导入备份drop表的时候报错了,登录到数据库drop tables `keys`;成功删除表后,重新导入备份,16G的备份7分钟就导完了,还是很效率的。

重启服务后登录gitlab,发现默认跳转到老gitlab地址,检查了nginx等确认没有做过跳转。仔细分析了下,可能是之前配置文件url存在数据库中,我导库直接带过来的,直接改数据库吧。

改完home_page_url和home_page_url后,跳转问题解决了。没有登录权限,之前ldap模式禁止本地登录了,于是有打开本地登录。

mysql -u gitlab -p

use gitlab_production;

update  application_settings set signin_enabled= '1';

update  application_settings set home_page_url = 'http://git.xxx.com';

update  application_settings set after_sign_out_path = 'http://git.xxx.com'

一切修改完后,再次登录,肯定登录失败的,因为之前关联ldap,现在改成本地用户了,只能暴力获取gitlab管理员密码了。

gitlab-rails console production
Loading production environment (Rails 4.2.5.2)
irb(main):001:0> user = User.where(id:1).first
irb(main):002:0> user.password='channel!@#'
irb(main):003:0> user.save!

修改完密码,终于可以用管理员登录了。

用户信息,权限,key都在,唯一要改的就是用户本地密码。

git clone push merage等都没有问题,算是迁移成功了,后面有问题我在发出来。

gitlab迁移坑深路远相关推荐

  1. gitlab 迁移、升级打怪之路:8.8.5-- 8.10.8 -- 8.17.8 -- 9.5.9 -- 10.1.4 -- 10.2.5

    gitlab 迁移.升级打怪之路:8.8.5--> 8.10.8 --> 8.17.8 --> 9.5.9 --> 10.1.4 --> 10.2.5 gitlab 数据 ...

  2. docker内网部署gitlab步骤及gitblit迁移gitlab踩坑gitlab备份nas

    docker内网部署gitlab步骤及gitblit迁移gitlab踩坑 1.部署情况 2.部署步骤 1.将gitlab docker镜像gitlab.tar拷贝到服务器中并加载 2.运行镜像 3.配 ...

  3. 产品经理初体验:山高水深路远

    产品经理任职接近一年,产品进入推广阶段,同时向高管汇报后,很多验证的问题,包括技术上.商业上.资源上的各种大方向问题突然凸显出来.算是开始产品经理第一课,虽然惨重,但是比过去一年的自我感觉良好,意义更 ...

  4. Android Studio 3.0~3.x正式版填坑之路

    序言 总看别人的文章,今天尝试着自己来写一篇.在逛论坛时候,无意间发现Android Studio 3.0正式版本推送更新了,早听说AS 3.0添加了许多新功能,然后手贱迫不及待地想先睹为快,结果正中 ...

  5. 从小白到迷茫菜鸟的IT入坑之路

    从接触IT到现在,大概有两年的时间了,从想着写技术博客开始到现在也差不多有半年时间了,本来想着是先写计算机多操作系统的安装.但是,无奈,太懒了,还是写写自己的入坑之路吧!没准对想入门的小白学弟学妹有帮 ...

  6. mybatis mapper.xml dtd_全栈开发踩坑之路4-用MyBatis实现服务

    1.前言 上一篇文章介绍了如何设计后端的Mysql数据库:Alex Wang:全栈开发踩坑之路3-MySql数据库设计,本文介绍如何用MyBatis实现后端服务. 本后端项目的Github地址(撰写中 ...

  7. Vue 爬坑之路(六)—— 使用 Vuex + axios 发送请求

    Vue 原本有一个官方推荐的 ajax 插件 vue-resource,但是自从 Vue 更新到 2.0 之后,官方就不再更新 vue-resource 目前主流的 Vue 项目,都选择 axios ...

  8. 三级pc技术_EeIE智博会展商推荐鑫路远—专业从事液控设备的研发、生产和销售的高新技术企业...

    01 企业简介 深圳市鑫路远电子设备有限公司(展位号:7B026)是一家专业从事液控设备的研发.生产和销售的高新技术企业.公司一直立足于液体控制领域,位于此行业的前沿.独资进行技术研发和生产,成为引导 ...

  9. git迁移MySQL数据库_Centos7下Gitlab迁移数据库mysql过程

    [root@test ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) [root@test ~]# uname -r ...

最新文章

  1. 二叉树-路径总和(递归)
  2. PluckerNet:一种基于3D线匹配的配准网络(CVPR2021)
  3. 数字(进制/二分/组合数学)
  4. 做人力资源需要掌握python_9种人力资源分析工具,高效打造数字化HR全流程
  5. 深入浅出 - 公钥、私钥和数字签名最通俗的理解
  6. ajax只请求一次,关于ajax的请求只处理一次的问题
  7. vue实现php传数据,vue+props传递数据怎样实现
  8. centos创建本地yum仓库
  9. 极客大学架构师训练营 性能优化 性能测试指标 性能测试 性能优化 CDN 网络 硬盘 缓存 异步 集群 第13课 听课总结
  10. IE11的安装方法和更新补丁
  11. window.print()后针式打印机打印出的内容成虚线问题
  12. 尚硅谷视频分享_硅谷的女儿分享了她的“书呆子”故事
  13. 搜索引擎使用技巧详解
  14. 超好用的卸载软件 —— Geek
  15. Android串口开发
  16. 关于FRM这些事,你必须完全知道!
  17. python绘图设置时间坐标轴_Matplotlib绘图双纵坐标轴设置及控制设置时间格式
  18. 什么是虚拟 DOM ?
  19. jsp输出金字塔_倒金字塔加码操作技巧及案例解析
  20. Python数据分析入门教程(更新中)

热门文章

  1. Oracle的emp表的基本函数学习
  2. 三分钟了解JVM的垃圾回收和三色标记
  3. 2018年上半年网络工程师综合试题视频解析-乔俊峰-专题视频课程
  4. 大学计算机python期末考试_大学计算机程序设计(Python)_章节测验,期末考试,慕课答案查询公众号...
  5. 有趣好玩实用的网站 保证闻所未闻
  6. Maven Archetype使用教程与具体使用方法
  7. Nginx Error: socket() [::]:80 failed (97: Address family not supported by protocol)
  8. HTML的基本结构标签与网页开发工具
  9. ibm 服务器 自动关机,IBM 联想 DELL HP服务器自动关机|解决办法整理
  10. c语言程序 存款利息的计算,【c语言】存款利息的计算