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:拒绝认证
作者:wanghongwei
版权声明:本作品遵循<CC BY-NC-ND 4.0>版权协议,商业转载请联系作者获得授权,非商业转载请附上原文出处链接及本声明。