# 安装部署

# 部署

# 虚拟机部署

yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
yum install postgresql12
yum install postgresql12-server
/usr/pgsql-12/bin/postgresql-12-setup initdb
systemctl enable postgresql-12
systemctl start postgresql-12

默认系统用户和数据库用户 postgres

登录数据库(使用 ident 方式):psql -U postgres

默认端口:5432

# 容器部署

docker run -d --name kong-postgresql \
-p 5432:5432 \
-e "POSTGRES_USER=kong" \
-e "POSTGRES_PASSWORD=kong" \
-e "POSTGRES_DB=kong" \
postgres:10.9

# 配置

  • /var/lib/pgsql/12/data/postgresql.conf 主配置文件
  • /var/lib/pgsql/12/data/pg_hba.conf 访问控制(客户端权限)配置文件
  • /var/lib/pgsql/12/data/pg_ident.conf ident 模式映射文件

ident 模式:PG 在本地登录时允许系统用户名(SYSTEM-USERNAME)和数据库用户名(PG-USERNAME)相同的用户免密登录。简单说就是如果数据库用户存在对应的同名系统用户,则本地登录可以通过:

su - username;psql

psql -U username

进行免密登录

如果系统用户名和数据库用户名不一致时也想要免密登录,则需要配置 pg_ident.conf 映射文件

# 开放外部登录

/var/lib/pgsql/12/data/postgresql.conf
    listen_addresses = '*'
/var/lib/pgsql/12/data/pg_hba.conf
    host    all             all             0.0.0.0/0            md5

# 管理

# pg_ctl 管理工具

# 重载配置文件

/usr/pgsql-12/bin/pg_ctl reload -D /var/lib/pgsql/12/data/

如果设置了环境变量 PGDATA=/var/lib/pgsql/12/data/则不必使用-D 参数,其他方法类似

# PGCLI 安装

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum install python-pip python-devel postgresql-devel
pip install pgcli
上次更新: 2/13/2025, 3:29:47 AM