零:背景
众所周知,gitlab的数据存储于PostgreSql数据库。具体这种数据库的作用和彩虹屁不在本文体现
本文只讨论如何从本地连接到服务器端的PostgreSql数据库。进而获取表中数据
一:直连方式
查看PostgreSql通用配置信息
[root@gitlab1 ~]# cat /var/opt/gitlab/gitlab-rails/etc/database.yml
# This file is managed by gitlab-ctl. Manual changes will be
# erased! To change the contents below, edit /etc/gitlab/gitlab.rb
# and run `sudo gitlab-ctl reconfigure`.
production:
adapter: postgresql #适配器方式
encoding: unicode
collation:
database: gitlabhq_production #数据库名称
pool: 1
username: "gitlab" #登录账户
password:
host: "/var/opt/gitlab/postgresql" #数据库安装位置
port: 5432 #端口
socket:
sslmode:
sslcompression: 0
sslrootcert:
sslca:
load_balancing: {"hosts":[]}
prepared_statements: false
statement_limit: 1000
fdw:
variables:
statement_timeout:
查看gitlab的一些其他配套服务的安装位置
[root@gitlab1 ~]# cat /etc/passwd
gitlab-www:x:995:992::/var/opt/gitlab/nginx:/bin/false
git:x:994:991::/var/opt/gitlab:/bin/sh
gitlab-redis:x:993:990::/var/opt/gitlab/redis:/bin/false
gitlab-psql:x:992:989::/var/opt/gitlab/postgresql:/bin/sh
gitlab-prometheus:x:991:988::/var/opt/gitlab/prometheus:/bin/sh
登录一下试试
###切换用户
[root@gitlab1 ~]# su - gitlab-psql
###-h 对应PostgreSql安装位置;-d 对应登录用户名;根据上面信息,得知默认没有密码
-sh-4.2$ psql -h /var/opt/gitlab/postgresql -d gitlabhq_production
psql (11.7)
Type "help" for help.
### \l 查看有哪些库
gitlabhq_production=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
---------------------+-------------+----------+-------------+-------------+---------------------------------
gitlabhq_production | gitlab | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
postgres | gitlab-psql | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
template0 | gitlab-psql | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/"gitlab-psql" +
| | | | | "gitlab-psql"=CTc/"gitlab-psql"
template1 | gitlab-psql | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/"gitlab-psql" +
| | | | | "gitlab-psql"=CTc/"gitlab-psql"
(4 rows)
一些其他常用命令,包括
“\dt” 以列表形式查看所有表
“\d 表名” 查看单张表信息
“\di” 列表形式查看所有索引
二:Navicat方式连接
2.1:修改核心配置文件
放开注释部分,修改为如下所示。cidr为0.0.0.0 代表不限制来访ip地址
[root@gitlab1 ~]# vim /etc/gitlab/gitlab.rb
postgresql['custom_pg_hba_entries'] = {
APPLICATION: [ # APPLICATION should identify what the settings are used for
{
type: "host",
database: "all",
user: "all",
cidr: "0.0.0.0/0",
method: "trust",
}
]
}
###修改完配置文件,刷新使其生效
[root@gitlab1 ~]# gitlab-ctl reconfigure
###查看是否生效。/var/opt/gitlab/postgresql路径 就是你PostgreSql的安装目录
[root@gitlab1 ~]# vim /var/opt/gitlab/postgresql/data/pg_hba.conf
# 这里是自动新增的部分
host all all 0.0.0.0/0 trust
2.2:不安全的修改
说在前面
:这次修改会在刷新配置之后,会有报错但毋需担心。
依然修改/etc/gitlab/gitlab.rb文件,如下所示
### 允许从其他地址访问本地PostgreSql数据库
postgresql['enable'] = true
### 允许访问的地址 0.0.0.0表示允许所有地址的访问
postgresql['listen_address'] = '0.0.0.0'
### 开放的端口
postgresql['port'] = '5432'
### 修改PostgreSql数据库的数据存储位置
postgresql['data_dir'] = "/var/opt/gitlab/postgresql/data"
本次修改后,同样刷新配置,可能会有报错。
提示‘listen_address’属性不合规什么的,但是不会影响整体功能,请忽略即可。
确认5432端口是否已放开监听,如果没有,重启gitlab服务即可
[root@gitlab1 ~]# netstat -antp |grep :5432
###如果执行上述命令后,没有反应,重启gitlab
[root@gitlab1 ~]# gitlab-ctl restart
###再次执行netstat 发现5432已打开
[root@gitlab1 ~]# netstat -antp |grep :5432
2.3 创建链接
其中,主机就是你的服务器ip,端口、用户名、初始数据库等信息,请参考/var/opt/gitlab/gitlab-rails/etc/database.yml
正常情况下,测试连接即可正常连接到PostgreSql。收工。
版权声明:本文为darkdragonking原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。