Centos 7.9 编码安装安装PostgreSQL 12.7
1、准备工作 下载postgresql 12.7 源文件
推荐使用清华大学的软件镜像站
https://mirrors.tuna.tsinghua.edu.cn/
https://mirrors.tuna.tsinghua.edu.cn/postgresql/source/v12.7/postgresql-12.7.tar.gz
2、安装所需依赖包
yum install -y vim gcc gcc-c++ readline-devel zlib-devel
3、解压源文件
tar zxf postgresql-12.7.tar.gz cd postgresql-12.7
4、编译并安装
./configure --prefix=/usr/local/pgsql/12.7 make && make install
5、修改自启动文件
cd contrib/start-scripts/ /bin/cp linux pgsql sed -i 's/\"\/usr\/local\/pgsql\/data\"/\"\/data\/postgresdata"/g' /usr/local/src/postgresql-12.7/contrib/start-scripts/pgsql sed -i 's/\/usr\/local\/pgsql/\/usr\/local\/pgsql\/12.7/g' /usr/local/src/postgresql-12.7/contrib/start-scripts/pgsql #sed -i 's/"\/usr\/local\/pgsql/\12.7\/data"/"\/data\/postgresdata"/g' pgsql /bin/cp pgsql /etc/init.d/ chmod +x /etc/init.d/pgsql /sbin/chkconfig --add pgsql mkdir -p /data/postgresdata/ chown -R postgres:postgres /data/postgresdata/
6、配置环境及创建用户
echo -e 'export PGSQL_HOME=/usr/local/pgsql/12.7\nexport PATH=${PGSQL_HOME}/bin:$PATH\nexport PGDATA=/data/postgresdata\n'>> /etc/profile
source /etc/profile
把自动创建的postgres用户删除
$ userdel -r postgres
把postgres用户的HOME建立在 /home 下
$ groupadd -g 701 postgres
$ useradd -g 701 -u 701 -s /bin/bash -m postgres
7、初始化数据库
#初始化postgresql数据库 su - postgres -c "${PGSQL_INSTALL_PATH}/bin/initdb -D /data/postgresdata/" #修改postgresql的配置文件 cd /data/postgresdata sed -i 's/127.0.0.1\/32 trust/0.0.0.0\/0 md5/g' pg_hba.conf sed -i "s/#listen_addresses = 'localhost'/listen_addresses = '*'/g" postgresql.conf sed -i 's/#port = 5432/port = 5432/g' postgresql.conf #启动数据库 su - postgres -c '/usr/local/pgsql/12.7/bin/pg_ctl -D /data/postgresdata -l /data/postgresdata/server.log start'
附:
安装脚本
#!/bin/sh #PGSQL安装的位置 PGSQL_INSTALL_PATH='/usr/local/pgsql/12.7' judge() { if [ $? -ne 0 ];then echo "###################" echo "# Install failed. #" echo "###################" exit 1 fi } yum install -y vim gcc gcc-c++ readline-devel zlib-devel useradd postgres #############postgres################# tar zxf postgresql-12.7.tar.gz cd postgresql-12.7 ./configure --prefix=${PGSQL_INSTALL_PATH} make && make install judge cd contrib/start-scripts/ /bin/cp linux pgsql sed -i 's/\"\/usr\/local\/pgsql\/data\"/\"\/data\/postgresdata"/g' /usr/local/src/postgresql-12.7/contrib/start-scripts/pgsql sed -i 's/\/usr\/local\/pgsql/\/usr\/local\/pgsql\/12.7/g' /usr/local/src/postgresql-12.7/contrib/start-scripts/pgsql #sed -i 's/"\/usr\/local\/pgsql/\12.7\/data"/"\/data\/postgresdata"/g' pgsql /bin/cp pgsql /etc/init.d/ chmod +x /etc/init.d/pgsql /sbin/chkconfig --add pgsql mkdir -p /data/postgresdata/ chown -R postgres:postgres /data/postgresdata/ #配置环境变量 echo -e 'export PGSQL_HOME='${PGSQL_INSTALL_PATH}'\nexport PATH=${PGSQL_HOME}/bin:$PATH\nexport PGDATA=/data/postgresdata\n'>> /etc/profile source /etc/profile #初始化postgresql数据库 su - postgres -c "${PGSQL_INSTALL_PATH}/bin/initdb -D /data/postgresdata/" #修改postgresql的配置文件 cd /data/postgresdata sed -i 's/127.0.0.1\/32 trust/0.0.0.0\/0 md5/g' pg_hba.conf sed -i "s/#listen_addresses = 'localhost'/listen_addresses = '*'/g" postgresql.conf sed -i 's/#port = 5432/port = 5432/g' postgresql.conf su - postgres -c ''${PGSQL_INSTALL_PATH}'/bin/pg_ctl -D /data/postgresdata -l /data/postgresdata/server.log start' if [ $? -eq 0 ];then echo "###################" echo "# Install Complet #" echo "###################" fi

浙公网安备 33010602011771号