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)!