因为早先的项目需要用到pathman,而根据pathman官方说明,能支持的postgresql的最高版本是13.9,因此,本文就以13.9版本进行说明。
所有步骤在CentOS7.*及8.* 版本,验证成功。
第一步:下载安装依赖包
###### 安装依赖包 # yum -y install gcc gcc-c++ make readline-devel zlib-devel bzip2 # 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-Ext Utils* openldap-devel jadetex openjade bzip2 nc mutt perl-ExtUtils-Embed # yum -y install elog* # yum -y install json* |
第二步:配置环境变量
# 创建组和用户 #useradd postgres #创建路径 #mkdir -p /usr/local/pgsql13 #mkdir -p /data/pg13data # chown -R postgres.postgres /usr/local/pgsql13 /data/pg13data #vim .bash_profile 输入以下内容 #export PS1="$USER@`/bin/hostname -s`:`pwd`-> " #export PS1=”\e[32;1m[\u@\H:\w]\e[m” export PS1=”[\e[36;1m\u\e[32m@\h:\e[34m\w] “ export PGUSER=postgres export PGPORT=1921 export PGDATA=/data/pg13data/ export LANG=en_US.utf8 export PGHOME=/usr/local/pgsql13 export LD_LIBRARY_PATH=$PGHOME/lib:/lib64:/usr/lib64:/usr/local/lib64:/lib:/usr/lib:/usr/local/lib: $LD_LIBRARY_PATH export DATE=`date +"%Y%m%d%H%M"` export PATH=$PGHOME/bin:$PATH:. export MANPATH=$PGHOME/share/man:$MANPATH 保存,退出 #source .bash_profile // 生效 |
注:有关环境变量中的提示符说明的内容,是参考的以下文档:
https://wenku.baidu.com/view/46567f0aee630b1c59eef8c75fbfc77da26997b4.html
第三步:下载PostgreSQL-13.9 源码
在安装PostgreSQL-13.9之前,需要确保Python3已经安装。
如果没有,可以参考下面的2步:
# yum -y install python3*
# yum -y install python3-devel*
下载postgresql-13.9的源码,有下列2种方式:
1. 通过浏览器下载
打开浏览器,输入https://www.postgresql.org/ftp/source/v13.9/
然后,选择postgresql-13.9.tar.bz2
2. 命令行下载
#wget --no-check-certificate https://ftp.postgresql.org/pub/source/v13.9/postgresql-13.9.tar.bz2
第四步:编译并安装
### 将安装包postgresql-13.9.tar.bz2 放在指定路径中并解压 # bunzip2 postgresql-13.9.tar.bz2 # tar -xvf ./postgresql-13.9.tar # cd ./postgresql-13.9 #./configure --prefix=/usr/local/pgsql13 --with-pgport=1921 --with-segsize=8 --with-perl --with-python --with-openssl --with-pam --with-ldap --with-libxml --with-libxslt --enable-thread-safety # make -j8 && make install |
第五步:初始化数据库
# su postgres $ cd /usr/local/pgsql13/bin $ initdb --locale=C -E utf8 -D $PGDATA |
第六步:修改配置文件
### 打开文件【此处为默认路径】 ### 若通过InitDB指定数据路径的话,则在-D中确定 #vi /data/pg13data/postgresql.conf ### 找到 #listen_addresses = 'localhost' 修改为 listen_addresses = '*' ### 打开文件 #vi /data/pg13data/pg_hba.conf ### 找到 # IPv4 local connections: host all all 127.0.0.1/32 trust #修改为 # IPv4 local connections: host all all 0.0.0.0/0 md5 ### 小技巧 ### 如果需要修改密码的加密方式: ### 打开postgresql.conf password_encryption = scram-sha-256 ### 修改 pg_hba.conf ### 将加密方式从md5改为scram-sha-256。(注,md5兼容scram-sha-256) ### 修改完成后,重启数据库,可以通过命令查看修改的结果 ### 启动命令如下: # pg_ctl -D $PGDATA [ stop | start ] ### 如果数据库是已经运行中的,则可以通过重新加载配置的命令,使之生效 ### 重新加载配置指令 # pg_ctl reload -D $PGDATA ### 或者 # select pg_reload_conf(); |
第七步:配置开机自启动模式
【此步骤需要root用户操作。】
【 postgresql 的安装包中提供了数据库启动与关闭的脚本,可以帮助我们简化操作,也可以 用作开机启动的脚本和service/systemctl 控制服务的脚本。 脚本位于: <src_pkg_path>/postgresql-13.9/contrib/start-scripts/ 】
#找到指定文件 linux,如下图箭头所示 ### 将linux文件复制到/etc/rc.d/init.d/下并重命名为postgresql # cp linux /etc/rc.d/init.d/postgresql # cd /etc/rc.d/init.d/ # chmod 755 postgresql ### 修改配置如下 #### 修改Linux操作系统配置 # chkconfig --add postgresql #### 重启服务器后,系统自动加载postgresql-13.9 #### 查看日志文件pg13.log 注:此后,也可以通过服务方式启动【需要root账号】 # service postgresql restart |