访问GitLab的PostgreSQL数据库,查询、修改、替换等操作

1.登陆gitlab的安装服务查看配置文件

复制代码
cat /var/opt/gitlab/gitlab-rails/etc/database.yml 

production:
  adapter: postgresql
  encoding: unicode
  collation:
  database: gitlabhq_production  //数据库名
  pool: 10
  username: 'gitlab'  //用户名
  password:
  host: '/var/opt/gitlab/postgresql'  //主机
  port: 5432
  socket:
  sslmode:
  sslrootcert:
  sslca:
复制代码

查看/etc/passwd文件里边gitlab对应的系统用户

 

[root@localhost ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
gitlab-www:x:496:493::/var/opt/gitlab/nginx:/bin/false
git:x:495:492::/var/opt/gitlab:/bin/sh
gitlab-redis:x:494:491::/var/opt/gitlab/redis:/bin/false
gitlab-psql:x:493:490::/var/opt/gitlab/postgresql:/bin/sh  //gitlab的postgresql用户

 

2.根据上面的配置信息登陆postgresql数据库

复制代码
[root@localhost ~]# su - gitlab-psql     //登陆用户

-sh-4.1$ psql -h /var/opt/gitlab/postgresql -d gitlabhq_production   //连接到gitlabhq_production库

psql (9.2.18)
Type "help" for help.

gitlabhq_production=#  \h    //查看帮助命令

Available help:
ABORT CREATE FUNCTION DROP TABLE
ALTER AGGREGATE CREATE GROUP DROP TABLESPACE
ALTER COLLATION CREATE INDEX DROP TEXT SEARCH CONFIGURATION
ALTER CONVERSION CREATE LANGUAGE DROP TEXT SEARCH DICTIONARY
ALTER DATABASE CREATE OPERATOR DROP TEXT SEARCH PARSER
ALTER DEFAULT PRIVILEGES CREATE OPERATOR CLASS DROP TEXT SEARCH TEMPLATE
ALTER DOMAIN CREATE OPERATOR FAMILY DROP TRIGGER
ALTER EXTENSION CREATE ROLE DROP TYPE

……………………………………………………………………………………………………………………

 

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)

gitlabhq_production-# \c gitlabhq_production //进入gitlabhq_production库 gitlabhq_production
-# \dt //查看多表 List of relations Schema | Name | Type | Owner --------+--------------------------------------+-------+-------- public | abuse_reports | table | gitlab public | appearances | table | gitlab public | application_settings | table | gitlab public | audit_events | table | gitlab public | award_emoji | table | gitlab public | boards | table | gitlab public | broadcast_messages | table | gitlab …………………………………………………………………………………………………………………… gitlabhq_production-# \d abuse_reports //查看单表 Table "public.abuse_reports" Column | Type | Modifiers --------------+-----------------------------+------------------------------------------------------------ id | integer | not null default nextval('abuse_reports_id_seq'::regclass) reporter_id | integer | user_id | integer | message | text | created_at | timestamp without time zone | updated_at | timestamp without time zone | message_html | text | Indexes: "abuse_reports_pkey" PRIMARY KEY, btree (id) gitlabhq_production-# \di //查看索引 List of relations Schema | Name | Type | Owner | Table --------+-----------------------------------------------------------------+-------+--------+-------------------------------- ------ public | abuse_reports_pkey | index | gitlab | abuse_reports public | appearances_pkey | index | gitlab | appearances public | application_settings_pkey | index | gitlab | application_settings public | audit_events_pkey | index | gitlab | audit_events public | award_emoji_pkey | index | gitlab | award_emoji public | boards_pkey | index | gitlab | boards public | broadcast_messages_pkey | index | gitlab | broadcast_messages public | chat_names_pkey | index | gitlab | chat_names public | ci_application_settings_pkey | index | gitlab | ci_application_settings public | ci_builds_pkey | index | gitlab | ci_builds public | ci_commits_pkey | index | gitlab | ci_commits ……………………………………………………………………………………………………………………………………………… gitlabhq_production=# SELECT spcname FROM pg_tablespace; //查看所有表空间 spcname ------------ pg_default pg_global (2 rows) gitlabhq_production-# \q //退出psql -sh-4.1$ exit //退出登录用户 logout
复制代码

批量替换某个表字段的字符串

update tableA set field=replace(field,'value1','value2')

 

导出整个库:

pg_dump -h 127.0.0.1 -U testuser test >test.sql

导入整个库

psql -U testuser test < test.sql

注意:这里的testuser是postgres用户,test是数据库名称,而且,testuser需要有test的权限

posted @   linyouyi  阅读(1971)  评论(1编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类
点击右上角即可分享
微信分享提示