自学内容网 自学内容网

rpm方式安装postgres数据库及普通用户管理数据库

一、安装postgres 数据库

下载rpm安装包

wget https://ftp.postgresql.org/pub/repos/yum/15/redhat/rhel-7.9-x86_64/postgresql15-libs-15.5-1PGDG.rhel7.x86_64.rpm
wget https://ftp.postgresql.org/pub/repos/yum/15/redhat/rhel-7.9-x86_64/postgresql15-15.5-1PGDG.rhel7.x86_64.rpm
wget https://ftp.postgresql.org/pub/repos/yum/15/redhat/rhel-7.9-x86_64/postgresql15-contrib-15.5-1PGDG.rhel7.x86_64.rpm
wget https://ftp.postgresql.org/pub/repos/yum/15/redhat/rhel-7.9-x86_64/postgresql15-server-15.5-1PGDG.rhel7.x86_64.rpm

安装依赖软件

# 安装依赖
yum install -y libzstd

安装数据库

# 安装pg数据库
yum -y localinstall *.rpm

# 初始化数据库
]# /usr/pgsql-15/bin/postgresql-15-setup initdb
Initializing database ... OK

启动数据库并加入到开机自启中

# 启动数据库
sudo systemctl enable --now  postgresql-15

二、用普通用户启停 postgres 数据库

需求:后续管理postgres数据库用普通用户app来操作,操作范围包括启停服务,修改配置文件,这里操作需小心谨慎,postgres数据库对权限管理还是严格的,如果权限配置不当会导致数据库启停失败。

编辑系统配置文件,在最后一行追加。

# 追加配置
app ALL=(ALL) NOPASSWD: /bin/systemctl start postgresql-15, /bin/systemctl stop postgresql-15, /bin/systemctl restart postgresql-15, /bin/systemctl status postgresql-15

# 保存退出

postgres服务 授予app权限

# 给pg数据库目录授权
cd /var/lib/
chmod -R 750 pgsql/

# 给pg配置文件授权
cd /var/lib/pgsql/15/data
chmod 777 postgresql.conf

# app用户加入到postgresql组里
usermod -a -G postgres app

切换到 app 用户查看是否可以管理 pg 服务

# 切换到app用户 用systemctl命令 查看是否可以使用
]# su app

# 查看pg运行状态
]$ sudo systemctl status  postgresql-15
● postgresql-15.service - PostgreSQL 15 database server
   Loaded: loaded (/usr/lib/systemd/system/postgresql-15.service; enabled; vendor preset: disabled)
   Active: active (running) since 日 2024-11-24 19:06:37 CST; 22min ago
     Docs: https://www.postgresql.org/docs/15/static/
  Process: 7594 ExecStartPre=/usr/pgsql-15/bin/postgresql-15-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS)
 Main PID: 7601 (postmaster)
    Tasks: 7
   Memory: 20.0M
   CGroup: /system.slice/postgresql-15.service
           ├─7601 /usr/pgsql-15/bin/postmaster -D /var/lib/pgsql/15/data/
           ├─7602 postgres: logger 
           ├─7604 postgres: checkpointer 
           ├─7605 postgres: background writer 
           ├─7607 postgres: walwriter 
           ├─7608 postgres: autovacuum launcher 
           └─7609 postgres: logical replication launcher 

11月 24 19:06:37 yunwei-test- systemd[1]: Starting PostgreSQL 15 database server...
11月 24 19:06:37 yunwei-test- postmaster[7601]: 2024-11-24 19:06:37.852 CST [7601] 日志:  日志输出重定向…进程
11月 24 19:06:37 yunwei-test- postmaster[7601]: 2024-11-24 19:06:37.852 CST [7601] 提示:  后续的日志输出…g"中.
11月 24 19:06:37 yunwei-test systemd[1]: Started PostgreSQL 15 database server.
Hint: Some lines were ellipsized, use -l to show in full.

# 重启gp数据库
]$ sudo systemctl restart  postgresql-15
]$ sudo systemctl status  postgresql-15
● postgresql-15.service - PostgreSQL 15 database server
   Loaded: loaded (/usr/lib/systemd/system/postgresql-15.service; enabled; vendor preset: disabled)
   Active: active (running) since 日 2024-11-24 19:40:47 CST; 1s ago
     Docs: https://www.postgresql.org/docs/15/static/

至此 app 用户操作 postgres 数据库验证已完成。

三、错误排查

启动失败报错排查,我这里遇到的基本上是因权限配置导致的启动失败,查看日志有两个渠道,一个是服务本身的日志,另一个是 journalctl 命令留存的日志。

服务本身的日志位置在 /var/lib/pgsql/15/data/log

journaltct 的日志 需要输入命令查看

journalctl -u postgresql-15

这里查看报错日志,根据提示修改权限就可以正常启动 postgres数据库了。

23]: 2024-11-24 19:31:07.981 CST [8123] 致命错误:  数据目录"/var/lib/pgsql/15/data"的权限无效
23]: 2024-11-24 19:31:07.981 CST [8123] 详细信息:  权限应该为 u=rwx (0700) 或者u=rwx,g=rx (0750).


原文地址:https://blog.csdn.net/weixin_38924998/article/details/144022162

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!