在CentOS7上用源码编译安装PostgreSQL
1、新建postgres用户
# useradd postgres && passwd postgres
2、安装依赖包
# yum -y install make gcc gcc-c++ readline readline-devel zlib-devel docbook-dtds docbook-style-xsl libxslt openssl-devel
3、安装PostgreSQL
# cd /software/
# wget -c https://ftp.postgresql.org/pub/source/v15.4/postgresql-15.4.tar.gz
# tar xzvf postgresql-15.4.tar.gz
# cd postgresql-15.4/
# ./configure --prefix=/opt/pgsql/ --with-openssl
# make -j 5
# make install
4、配置环境变量
# su - postgres
$ vi ~/.bash_profile
编辑为如下内容:
PGHOME=/opt/pgsql
export PGHOME
PGDATA=/usr/local/pgsql/data
export PGDATA
PGLOG=$PGDATA/log
export PGLOG
PATH=$PGHOME/bin:$PATH
export PATH
保存退出后,执行source命令,使修改生效:
$ source ~/.bash_profile
5、初始化数据库系统
执行initdb命令,初始化数据库系统:
$ initdb -D $PGDATA -U postgres -W
6、编辑配置文件
$ vi $PGDATA/pg_hba.conf
增加下面一行,表示允许任何一个客户端使用正确的用户名和密码访问数据库:
host all all 0.0.0.0/0 md5
$ vi $PGDATA/postgresql.conf
去掉行的注释,将listen_addresses = 'localhost' 改成 listen_addresses = '*'。
去掉行的注释,将logging_collector = off改成 logging_collector = on,日志文件将被存放在log_directory参数定义的目录下。
7、创建服务脚本
# cp /software/postgresql-15.4/contrib/start-scripts/linux /etc/init.d/postgresql
# chmod a+x /etc/init.d/postgresql
# vi /etc/init.d/postgresql
修改/etc/init.d/postgresql文件中prefix和PGDATA的设置如下:
prefix=/opt/pgsql
PGDATA="/usr/local/pgsql/data"
8、设置开机自动启动
# chkconfig --add postgresql
查看开机自动启动的服务:
# chkconfig –list