准备工作
环境: CentOS linux 7.9 x86 2u2G data:30G
数据库安装包:postgresql-14.7.tar.gz
规划:
安装目录:/data/postgresql/postgresdir
数据目录:/data/postgresql/postgresdata
备份目录:/data/postgresql/postgresbackup
日志目录:/data/logs/postgreslog
1.下载安装包,安装依赖,创建目录,创建用户及用户组
wget https://ftp.postgresql.org/pub/source/v14.3/postgresql-14.3.tar.gz
yum install readline readline-devel -y
yum install zlib zlib-devel -y
yum install -y gcc-c++
yum install -y gcc
mkdir -p /data/postgresql/postgresdir
mkdir -p /data/postgresql/postgresdata
mkdir -p /data/postgresql/postgresbackup
mkdir -p /data/logs/postgreslog
groupadd postgres --创建用户组
useradd -g postgres postgres --创建用户
2.源码编译安装
tar -xf postgresql-14.7.tar.gz -C /data/ --解压
cd /opt/postgresql-14.7/
./configure --prefix=/data/postgresql/postgresdir --enable-nls=en_US.UTF-8
make
make install
cd contrib
make
make install
chown postgres.postgres -R /data
3.修改环境变量
vi .bash_profile
export PGDATA=/data/postgresql/postgresdata
export PGHOME=/data/postgresql/postgresdir
export MANPATH=$PGHOME/share/man:$MANPATH
export LANG=en_US.utf8
export DATE=`date +"%Y-%m-%d %H:%M:%S"`
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PGHOME/lib
export PATH=$PATH:$PGHOME/bin/
4.初始化数据库
/data/postgresql/postgresdir/bin/initdb -D /data/postgresql/postgresdata
5.修改配置文件
data_directory = '/data/postgresql/postgresdata'
hba_file = '/data/postgresql/postgresdata/pg_hba.conf'
ident_file = '/data/postgresql/postgresdata/pg_ident.conf'
listen_addresses = 'localhost,%'
port = 5432
max_connections = 100
authentication_timeout = 1min
password_encryption = scram-sha-256
shared_buffers = 1024MB
log_destination = 'stderr'
logging_collector = on
log_directory = '/data/logs/postgreslog/'
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'
log_file_mode = 0600
log_rotation_age = 15d
log_rotation_size = 10MB
log_truncate_on_rotation = on
autovacuum = on
pg_ctl start --启动数据库
pg_ctl start --关闭数据库
6.使用root 用户启动数据库
root 用户
cd /data/postgresql-14.3/contrib/start-scripts
chmod a+x linux
cp linux /etc/init.d/postgresql
vi /etc/init.d/postgresql --修改启动脚本
# Installation prefix
prefix="/data/postgresql/postgresdir" --安装目录
# Data directory
PGDATA="/data/postgresql/postgresdata" --数据目录
DATE=date +"%Y-%m-%d_%H%M%S"
# Where to keep a log file
PGLOG="/data/logs/postgreslog/postgresql-$DATE.log" --数据日志
service postgresql start --启动数据库
service postgresql stop --关闭数据库
7.登录数据库,修改密码
su - postgres
psql
alter role postgres with password 'Cloud12#$%';
select rolname,rolpassword from pg_authid;
至此,数据库已安装完毕