一、PostgreSQL安装
dnf install -y postgresql-server # 初始化pgsql /usr/bin/postgresql-setup --initdb # 启用pgsql systemctl enable postgresql.service systemctl start postgresql.service
二、PostgreSQL配置远程访问
1、编辑/var/lib/pgsql/16/data/postgresql.conf(通过默认仓库安装路径是:/var/lib/pgsql/data/postgresql.conf),取消注释并修改:
listen_addresses = '*' # 允许所有IP访问 port = 5432 # 默认端口
2、编辑/var/lib/pgsql/16/data/pg_hba.conf(通过默认仓库安装路径是:/var/lib/pgsql/data/pg_hba.conf),按需选择以下配置
# local行仅针对Unix域套接字连接,不涉及网络 # host行针对TCP/IP连接 # 允许本地socket连接访问数据库 local all all md5 # 允许本地TCP连接(127.0.0.1)使用md5: host all all 127.0.0.1/32 md5 # 允许所有IP访问数据库 host all all 0.0.0.0/0 md5 # 允许某网段访问数据库: host all all 192.168.1.0/24 md5 # 允许admin用户通过127.0.0.1访问数据库 host all admin 127.0.0.1/32 md5 # 允许admin用户通过127.0.0.1访问访问testdb库 host testdb admin 127.0.0.1/32 md5
3、重启PostgreSQL
systemctl restart postgresql
service postgresql restart
三、PostgreSQL认证方式
1、使用md5/password认证
远程连接认证必需使用md5/password方式,本地TCP/IP连接使用md5或scram-sha-256(scram-sha-256:一般在较新版本中使用,需要客户端库也支持SCRAM,且pg_hba.conf与pgcrypto支持),需要修改pg_hba.conf(pg_hba.conf文件位置:/var/lib/pgsql/data/pg_hba.conf或/etc/postgresql/XX/main/pg_hba.conf)
2、使用Ident/Peer认证
Ident/Peer验证通常在本地连接时通过操作系统用户与数据库用户的映射来工作,如果没有正确映射也会失败。确保你在操作系统是以同名用户运行(系统中也需要有admin用户),并且pg_hba.conf中的local/host行匹配该使用者。
四、PostgreSQL常用操作
# 进入 psql sudo -u postgres psql # 创建数据库 CREATE DATABASE testdb; # 创建用户: CREATE USER admin WITH PASSWORD 'admin123'; # 授予用户访问testdb数据库权限: GRANT ALL PRIVILEGES ON DATABASE testdb TO admin; # 查看所有数据库 \l # 切换到testdb库 \c testdb # 查看数据库里的表 \dt # 查看当前数据库名称 SELECT current_database(); # 退出 \q # 远程登陆PostgreSQL psql -h 127.0.0.1 -U admin -d testdb -W admin123
