通过源码安装postgresql12.13(centos7&银河麒麟v10服务器版)

内容纲要
  1. 下载PostgreSQL12.13源码
    下载地址为官网:https://www.postgresql.org/ftp/source/v12.13/
    下载文件postgresql-12.13.tar.gz后上传服务器,并解压。

    # 解压gz文件到当前目录
    tar -zcvf postgresql-12.13.tar.gz
  2. 创建pg的用户组和用户
    #1. 创建postgres用户组和用户
    groupadd postgres
    useradd -g postgres postgres
    #2. 创建数据存放目录
    mkdir -p /data/appData/postgreSql
    mkdir -p /data/logs/postgreSql/
    #授予权限
    chmod  -R 775 /data/appData/postgreSql
    chmod  -R 775 /data/logs/postgreSql/
    #更改目录拥有用户
    chown -R postgres:postgres /data
    chown -R postgres:postgres /data/appData/postgreSql
    chown -R postgres:postgres /data/logs/postgreSql/
  3. 切换用户,安装数据库
    su postgres
    #在解压目录进行源码编译安装
    #指定安装目录参数: --prefix=/usr/pgsql-12/
    ./configure --prefix=/usr/pgsql-12/ --without-readline
    #安装
    make && make install
    #安装成功后,查看/usr/pgsql-12/目录权限,如果所有者不是postgres则更改权限
    ls -al /usr/pgsql-12
    chown -R postgres:postgres /usr/pgsql-12/
  4. 配置环境变量(可以不需要,只是将pg的命令加入环境变量,避免输入全路径执行)
    #修改 /etc/profile 文件,在最后增加下面命令
    export PATH=/usr/pgsql-12/bin:$PATH
    LD_LIBRARY_PATH=/usr/pgsql-12/lib
    export LD_LIBRARY_PATH
    #刷新配置,是配置生效
    source /etc/profile

    添加环境变量后,就不需要使用全路径命令,比如初始化数据库

    # /usr/pgsql-12/bin/initdb 命令可以直接用 initdb 就可以
  5. 安装数据库
    #1. 初始化数据库,指定数据目录
    initdb -D /data/appData/postgreSql/
    #2. 启动数据库,指定数据目录和日志文件
    pg_ctl -D /data/appData/postgreSql -l /data/logs/postgreSql/server.log start
    #3. 修改配置文件postgresql.conf
    vim /data/appData/postgreSql/postgresql.conf
    #取消 listen_addresses注释,并修改为
    listen_addresses = '*'
    #取消port = 5432 注释,修改为实际端口
    port = 15432
    #4. 修改配置文件pg_hba.conf
    vim /data/appData/postgreSql/pg_hba.conf
    #允许远程访问
    #参数:trust 免密; md5 密码登录
    #末尾追加一行
    host    all             all      0.0.0.0/0      md5
    # 修改配置后重启服务
    pg_ctl -D /data/appData/postgreSql -l /data/logs/postgreSql/server.log restart
  6. 配置数据库服务自启动
    #1. 创建postgresql的systemd服务文件,保存为/etc/systemd/system/postgresql.service
    vim /etc/systemd/system/postgresql.service

    在文件中添加一下内容

    [Unit]
    Description=PostgreSQL12.13 Database Server
    After=network.target
    [Service]
    Type=forking
    User=postgres
    ExecStart=/usr/pgsql-12/bin/pg_ctl start -D /data/appData/postgreSql -l /data/logs/postgreSql/server.log
    ExecStop=/usr/pgsql-12/bin/pg_ctl stop -D /data/appData/postgreSql -l /data/logs/postgreSql/server.log
    Restart=always
    [Install]
    WantedBy=multi-user.target

    启动PostgreSQL服务,并将其添加到系统启动项中:

    sudo systemctl start postgresql
    sudo systemctl enable postgresql

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注