封尘网

让学习成为一种习惯!

操作Gitlab的数据库postgresql更新帐号信息

由于内部的Ldap认证服务器硬盘坏掉了,导致在上面跑的Ldap服务无法对Jenkins和Gitlab平台做集中认证了,导致在Gitlab上的帐号无法登陆到平台上,也就无法提交拉取代码了。

解决思路:

  • 方法一、重新配置一个Ldap服务把之前的数据库导进来,迁移到新的机器上然后修改Gitlab的认证服务地址。
  • 方法二、直接修改Gitlab的数据库,对帐号的认证方式修改。

因为之前的Ldap平台在Centos6系统上,现在大部分系统都在7系了,然而在Centos7的系统中做了一个安装测试遇到了一些问题,导致这个方法不能快速解决问题,所以选择了第二种方法。

操作过程

  • 修改gitlab的数据库配置,开启远程访问(默认本机访问)
  • 重启数据库服务
  • 关闭远程访问权限

1、 修改配置文件,添加最后两行:/var/opt/gitlab/postgresql/data/pg_hba.conf

[root@Code1 ~]# egrep -v "^#|^$" /var/opt/gitlab/postgresql/data/pg_hba.conf
local   all         all                               peer map=gitlab
host    all             all             127.0.0.1/32            trust
host    all             all             0.0.0.0/0               trust

2、修改配置文件: /var/opt/gitlab/postgresql/data/postgresql.conf 修改listen_addresses把它改成*号

listen_addresses = '*'

3、重启postgresql服务

gitlab-ctl restart postgresql

说明 像这样操作配置文件,然后直接重新启动postgresql数据库即可。如果是修改/etc/gitlab/gitlab.rb 配置文件的话就需要重新生成配置。所以不建议去修改/etc/gitlab/gitlab.rb文件。

使用Navicat工具连postgresql接数据库

如上图填写上gitlab 的Ip地址,下边的初始数据库gitlabhq_production和用户名都是默认的,密码为空。(所以要关闭远程连接)

连接上后,找到对应的表identities 修改对应的字段,其它就是把字段中的user_id修改掉,我这里做法就是把用户的user_id改成了负数,这样在Ldap认证时就找不到了。

更新后如果用户还存在登陆不了的问题,这时候可以让用户自己去Web端登陆gitlab,选择忘记密码,通过忘记密码来重新设置一个密码。(前提是你实现了密码找回功能)

最后修改完后记得要把远程的配置注释掉,或者删除了。重启postgresql服务即可。

提醒:本文最后更新于 87 天前,文中所描述的信息可能已发生改变,请谨慎使用。