如何访问 GitLab 默认安装的 PostgreSQL 数据库

简述

当通过Omnibus方式安装GitLab后,运行起来的默认是PostgreSQL数据库,并且使用内置的用户名密码,虽然增加了安全性,但对于用户对数据库的访问造成了一定的困难。下面就来说说如何访问GitLab默认安装的PostgreSQL。

新建用户并赋权

登录主机并登录PostgreSQL数据库,创建一个同级用于访问PostgreSQL的用户并授权。这样的好处是无需更改GitLab相关配置就可以用其他方式登录数据库,不用了可以直接删除。这比直接修改GitLab默认用户的密码要方便得多。

1
2
3
4
5
sudo psql -h /var/opt/gitlab/postgresql -d gitlabhq_prod;

CREATE USER huangzhongzhang WITH PASSWORD '[C43f(bD2kLpZ?bk';
GRANT ALL PRIVILEGES ON DATABASE gitlabhq_production to huangzhongzhang;
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO huangzhongzhang;

修改配置文件

修改postgresql.conf文件,让PostgreSQL开启外部端口监听。

1
2
3
4
5
vi /var/opt/gitlab/postgresql/data/postgresql.conf

...
listen_addresses = 'localhost,server_ip' # what IP address(es) to listen on;
...

修改pg_hba.conf文件,添加访问白名单。

1
2
3
4
5
vi /var/opt/gitlab/postgresql/data/pg_hba.conf

...
host all all client_ip/32 md5
...

重启Postgresql

重启PostgreSQL使配置生效。

1
sudo gitlab-ctl restart postgresql

完成以上步骤后,就可以在client_ip所在的客户端远程连接PostgreSQL了。