centos8系统上手动安装pg16

  • 下载pg16的rpm包(我这里用的是centos8系统),需要下载下面依赖包,下载后传到Linux环境
postgresql16-16.1-2PGDG.rhel8.x86_64.rpm
postgresql16-libs-16.1-2PGDG.rhel8.x86_64.rpm
postgresql16-server-16.1-2PGDG.rhel8.x86_64.rpm
  • 手动安装
 postgresql16-libs-16.1-2PGDG.rhel8.x86_64.rpm 
 postgresql16-16.1-2PGDG.rhel8.x86_64.rpm 
 postgresql16-server-16.1-2PGDG.rhel8.x86_64.rp
  • 安装之后就可以使用systemctl来初始化数据库了,官方的步骤是
/usr/pgsql-16/bin/postgresql-16-setup initdb
systemctl enable postgresql-16
systemctl start postgresql-16

这样数据库就装上了,默认用户是postgres,默认数据目录是/var/lib/pgsql/data
但是如果不想使用默认的数据目录和用户,可以自定义初始化并安装,我的实现是这样的

1. 创建数据目录
   mkdir /usr/local/pgdata
2. 创建管理员用户pgadmin
   useradd pgadmin 
3. 修改目录权限
   chown pgadmin:pgadmin /usr/local/pgdata -R
   chown pgadmin:pgadmin /usr/pgsql16 -R
4. 切换到pgadmin用户
   su - pgadmin
5. 配置环境变量并写入.bashrc中
   export PATH=/usr/pgsql-16/bin:$PATH
   export PGDATA=/usr/pgdata/
   export PGPORT=5432
   export PGDATABASE=postgres
   export PGUSER=pgadmin
6. 初始化数据库
   initdb
7. 启动数据库
  pg_ctl start -D $PGDATA
  • 创建个人数据库和用户
create database testdb;
create role myuser with login password 'passwd';
alter database testdb owner to myuser;

  • 配置访问权限,实现其他主机远程访问
1. 修改监听地址,修改postgresql.conf文件的listen_address配置
 vim $PGDATA/postgresql.conf
   listen_address='*'
2. 修改pg_hba.conf文件,增加下列两行
  host all  all 0.0.0.0/0  md5
  host all  all ::1/128    md5
3. 使配置生效
 pg_ctl reload
  

pg_hba.conf文件中的匹配原则是从文件头开始匹配,匹配到第一条符合要求的规则后就不会再继续匹配。

  • 配置完成之后就可以通过客户端工具连接了
    在这里插入图片描述

在这里插入图片描述

接下来就可以创建表,开启愉快的数据库之旅了

常见问题

  • 安装完之后,pg_hba.conf也配置完之后,psql -h远程还是连接不上,报错
[pgadmin@localhost pgdata]$ psql -h 192.168.134.128
psql: error: connection to server at "192.168.134.128", port 5432 failed: Connection refused
        Is the server running on that host and accepting TCP/IP connections

查看监听的端口:
netstat -tlunp|grep 5432
tcp        0      0 127.0.0.1:5432          0.0.0.0:*               LISTEN      151329/postgres
说明监听的是本地端口,不是主机IP地址

解决: 修改postgresql.conf文件
将listen_address='**'
  • 手动部署完之后启动失败,报错
psql: error: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: No such file or directory
        Is the server running locally and accepting connections on that sock

1. 确认目录是否存在,不存在的话就创建
2. 确认当前的数据库用户是否有访问/var/run/postgresql的权限,没有就赋权
mkdir -p /var/run/postgresql
chown pgadmin:pgadmin /var/run/postgresql -R
注意: /var/run下的目录或文件,每次系统重启后会清空的,所以系统重启后,启动数据库之前,要先确认该目录是否存在。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值