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

 

posted @ 2021-05-19 14:49  Soul8  阅读(481)  评论(0)    收藏  举报