Postgres17.0在centos7 编译安装。
安装依赖:
yum -y install coreutils glib2 lrzsz mpstat dstat sysstat e4fsprogs xfsprogs ntp readline-devel zlib-devel openssl-devel pam-devel libxml2-devel libxslt-devel python-devel tcl-devel gcc make smartmontools flex bison perl-devel perl-ExtUtils* openldap-devel jadetex openjade bzip2
创建用户
useradd postgres
创建目录
mkdir -p /data460/postgresql/pg17/{pgsql,data,pg_log,archive_log}
创建连接
ln -s /data460/postgresql/pg17 /data460/postgresql/pg
解压缩
tar -xzvf postgresql-17.0.tar.gz -C /data460/postgresql
编译安装
cd /data460/postgresql/postgresql-17.0/
./configure --prefix=/data460/postgresql/pg/pgsql --with-python && make world -j 2 && make install-world
查看icu依赖库是否存在
icu-config --version
不存在,则需要安装依赖库:输入下面指令,y 确认
yum install libicu-devel
重新执行 ./configure
解决方法:
yum install python python-devel
还是不起作用,去掉--with python编译
./configure --prefix=/data460/postgresql/pg/pgsql && make world -j 2 && make install-world
编译通过
安装
make install
#改变目录权属
chown -R postgres.postgres /data460/postgresql
#编辑环境文件
su - postgres
● vim .bash_profile追加如下内容
export PS1="$USER@`/bin/hostname -s`-> "
export PGPORT=15432
export LANG=en_US.utf8 #中文字符集初始化库用 zh_CN.UTF8
export PGHOME=/data460/postgresql/pg17/pgsql
export LD_LIBRARY_PATH=PGHOME/lib:/lib64:/usr/lib64:/usr/local/lib64:/lib:/usr/lib:/usr/local/lib:LD_LIBRARY_PATH
export PGDATA=/data460/postgresql/pg17/data
export PGHOST=$PGDATA
export PATH=PGHOME/bin:PATH:.
export DATE='date +"%Y%m%d%H%M"'
export MANPATH=PGHOME/share/man:MANPATH
export PGUSER=postgres
export PGDATABASE=postgres
alias ll='ls -lh'
执行
source .bash_profile
初始化数据库
initdb -D $PGDATA -E UTF8 --locale=en_US.UTF8 -U postgres
编辑参数文件postgresql.conf ,开启归档及修改端口
暂时不转移日志文件,设定日志级别,打开全页写
注意从postgresql 13 的 wal_keep_segments 已经取消,改用 wal_keep_size,此处使用1000M。
打开归档
编辑 pg_hba.conf
加入这一行
host all all 0.0.0.0/0 md5
启动 postgres
pg_ctl start
psql使用localhost进入更改postgres用户密码
psql -hlocalhost --port 15432 -Upostgres
更改密码:
alter user postgres with password '你的密码';
安装编译uuid插件。
使用root用户
- uuid插件安装
############uuid创建##########
############uuid创建##########
-----------uuid编译安装如果是主从环境,主从节点都需要编译安装--------------
yum -y install e2fsprogs-devel uuid-devel libuuid-devel
yum -y install libossp*
###需要下载uuid-devel-1.6.2-26.el7.x86_64.rpm软件包#########
yum -y localinstall uuid-1.6.2-26.el7.x86_64.rpm
yum -y localinstall uuid-devel-1.6.2-26.el7.x86_64.rpm
使用uuid参数再编译一下pg
--with-uuid=ossp
cd /data460/postgresql/postgresql-17.0
--清理
make clean
--重新配置
./configure --prefix=/data460/postgresql/pg/pgsql --with-uuid=ossp && make world -j 2 && make install-world
安装
make install
进入扩展目录
make&&make install
进入pg环境,创建扩展
psql -hlocalhost --port 15432 -Upostgres
create extension "uuid-ossp";
安装auto_explain
cd /data460/postgresql/postgresql-17.0/contrib/auto_explain
make&&make install
安装pg_stat_statements
cd /data460/postgresql/postgresql-17.0/contrib/pg_stat_statements
make&&make install
安装pg_buffercache
cd /data460/postgresql/postgresql-17.0/contrib/pg_buffercache
make&&make install