用直连和Navicat方式 连接 Gitlab的PostgreSql数据库

本文详述了如何从本地连接至GitLab服务器上的PostgreSQL数据库,包括直接连接及使用Navicat的方式,提供了核心配置修改步骤及常见命令介绍。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

零:背景

      众所周知,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。收工。

 

 

03-18
<think>嗯,用户的问题是关于寻找名为“神器”的IT工具、软件开发辅助工具。首先,我需要明确用户的需求是什么。他们可能是在寻找能提高开发效率的工具,或者是一些功能强大的软件,帮助解决开发中的常见问题。接下来,我需要确定“神器”在这里的具体含义,通常这可能指的是被开发者广泛推荐、功能强大或效率提升显著的工具。 然后,我应该考虑哪些类型的工具会被开发者视为“神器”。常见的类别包括代码编辑器、调试工具、自动化工具、API测试工具、数据库管理工具等。例如,Visual Studio CodeIntelliJ IDEA是非常流行的代码编辑器,Postman用于API测试,DBeaver用于数据库管理,这些都可能被称作“神器”。 接下来,我需要调用网络搜索工具,查找相关的资料。可能的关键词组合有“开发者神器工具推荐”、“高效编程工具”、“开发辅助软件”等。搜索结果可能会列出多个工具,我需要筛选出被多次提及、评价高的工具,并分类整理。 然后,要整合这些信息,按照用户的要求分步骤呈现,每个步骤或方法之间换行,避免使用顺序词汇。同时,确保每个工具的描述简洁明了,突出其核心功能优势。例如,提到Visual Studio Code时,可以强调它的插件生态跨平台支持;对于Git,则强调版本控制的重要性。 需要注意的是,用户要求禁止将引用集中在末尾,所以每个工具的信息需要自然融入段落中。同时,避免使用第一人称,保持客观。如果有代码或公式,必须按照指定格式,但在这个问题中可能较少涉及,不过还是要注意可能的代码示例,如Git命令或Postman的代码片段。 最后,生成相关问题部分时,需基于用户的原问题回答内容。可能的相关问题包括如何选择工具、特定工具的使用方法,或者特定领域的工具推荐,如数据库或自动化测试工具。确保问题有针对性,帮助用户进一步探索。 现在,需要检查是否符合所有格式要求:分点但不使用步骤词汇,正确使用代码公式格式(如果有的话),相关问题部分正确标号且位于最后,标题正确。确认没有使用第一人称,内容实用且可操作。</think>根据“神器 IT工具 软件 开发辅助”相关检索,以下为开发者常用的高效工具分类及推荐: **代码开发与调试工具** Visual Studio Code(VS Code)作为轻量级代码编辑器,支持插件扩展跨平台开发,集成Git版本控制、调试终端智能代码补全。IntelliJ IDEA适合Java/Kotlin开发,提供深度代码分析重构功能。Postman用于API接口调试,支持自动化测试环境变量管理,简化前后端协作流程。 **效率提升与自动化** Git作为分布式版本控制系统,可通过以下命令快速创建分支: ```bash git checkout -b feature-branch ``` Jupyter Notebook支持交互式数据分析机器学习建模,结合Markdown文档实现代码与可视化结果的一体化展示。Sublime Text的模糊搜索功能(Ctrl+P)多光标编辑大幅提升文本处理效率。 **运维与部署工具** Docker通过容器化技术实现环境隔离,使用Docker Compose可快速编排多服务应用: ```yaml services: web: image: nginx:alpine ports: - "80:80" ``` Jenkins提供持续集成流水线配置,支持与GitHub/GitLab的Webhook集成。Kubernetes(k8s)用于容器集群管理,通过声明式YAML文件实现应用弹性伸缩。 **数据库与数据分析** DBeaver作为通用数据库客户端,支持MySQL/PostgreSQL/MongoDB等20+数据库连接。TableauPower BI提供可视化分析看板,支持SQL直连实时数据刷新。Navicat具备数据同步与结构对比功能,适用于跨环境数据库迁移。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值