PostgreSQL安装部署

1. 使用yum安装

1)安装数据库服务器

yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
yum install -y postgresql15-server

2)初始化并启动数据库

/usr/pgsql-15/bin/postgresql-15-setup initdb  # 默认数据目录/var/lib/pgsql/15/data/
systemctl enable postgresql-15
systemctl start postgresql-15

3)修改数据目录(可选)

vim /usr/lib/systemd/system/postgresql-15.service
Environment=PGDATA=/var/lib/pgsql/15/data/  # 根据需要修改数据目录

/usr/pgsql-15/bin/postgresql-15-setup initdb  # 重新初始化并重启数据库
systemctl daemon-reload 
systemctl restart postgresql-15

2. 源码编译安装

1)安装编译环境和依赖

yum install -y gcc automake autoconf libtool make
yum install -y readline-devel zlib-devel

2)下载源码并解压

# 官网下载地址:https://www.postgresql.org/ftp/source/
wget https://ftp.postgresql.org/pub/source/v15.5/postgresql-15.5.tar.gz
tar -zxvf postgresql-15.5.tar.gz

3)编译和安装

mkdir /usr/local/postgresql
cd postgresql-15.5
./configure --prefix=/usr/local/postgresql
make && make install

4)增加postgres用户并配置数据目录

useradd postgres
mkdir -p /data/postgresql/
chown -R postgres:postgres /data/postgresql/

5)增加环境变量

cat >>/etc/profile<<EOF
export PGDATA=/data/postgresql/data
export PGHOME=/usr/local/postgresql
export PATH=\$PATH:\$PGHOME/bin
EOF
source /etc/profile

6)初始化数据库

# 不能在特权用户下初始数据库,否则会报错
# initdb: error: cannot be run as root
# initdb: hint: Please log in (using, e.g., "su") as the (unprivileged) user that will own the server process.

su postgres
initdb -D /data/postgresql/data

7)启动数据库

pg_ctl start -D /data/postgresql/data -l /data/postgresql/data/pg_server.log
# pg_ctl restart  # 重启数据库
psql  # 登录数据库

3. 配置文件

1)数据库主配置文件

vim /data/postgresql/data/postgresql.conf
# 修改监听所有IP地址
listen_addresses = '*' 
port = 5432

2)访问策略配置文件

vim /data/postgresql/data/pg_hba.conf
# 允许所有数据库(all)、所有用户(all)、所有地址(0.0.0.0/0)均可加密访问(md5)本数据库
host    all             all             0.0.0.0/0               md5

# TYPE:pg的连接方式,local:本地unix套接字,host:tcp/ip连接
# DATABASE:指定数据库
# USER:指定数据库用户
# ADDRESS:ip地址,可以定义某台主机或某个网段
# METHOD:认证方式,常用的有ident,md5,password,trust,reject
# md5:常用的密码认证方式
# password:以明文密码传送给数据库,建议不要在生产环境中使用
# trust:只要知道数据库用户名就能登录,建议不要在生产环境中使用
# reject:拒绝认证
posted @ 2024-01-18 16:47  wanghongwei-dev  阅读(144)  评论(0编辑  收藏  举报