默认缺省情况下, Gitlab 用户使用的是 Peer Authentication , 这意味着客户端只能以 PostgreSQL 所在主机上的Linux系统账号访问数据库, 无法远程访问。这里为了安全,我们使用的是Password/Md5 Authentications的认证方式

1、设置PostgreSQL数据库用户 gitlab 的密码:

# 切换用户
su - gitlab-psql

# 连接数据库
psql gitlabhq_production

# 或者
psql -h /var/opt/gitlab/postgresql -d gitlabhq_production


# 报错
psql: could not connect to server: 没有那个文件或目录
Is the server running locally and accepting
connections on Unix domain socket "/tmp/.s.PGSQL.5432"?

# 解决方法
cd /tmp
ln -s /var/opt/gitlab/postgresql/.s.PGSQL.5432

# 修改密码
\password gitlab

# 退出
\q

配置文件

vim /etc/gitlab/gitlab.rb

# 修改数据库密码
gitlab_rails['db_password'] = "gitlab"


vim /var/opt/gitlab/postgresql/data/postgresql.conf

# 修改
listen_addresses = '*'


vim /var/opt/gitlab/postgresql/data/pg_hba.conf
# 最后增加一行
host all all 0.0.0.0/0 md5

2、重新启动

# 开启防火墙
-A INPUT -p tcp -m state --state NEW -m tcp --dport 5432 -j ACCEPT

# 重启gitlab 组件
gitlab-ctl restart

后面不能在执行 gitlab-ctl reconfigure,如果执行以后,上面2个文件改的内容将重置