检查环境,如果缺失提前离线安装好
1 | rpm -qa | grep gcc-c++ |
挑选心仪的版本
1 2 | https://www.postgresql.org/ftp/source/ wget https://ftp.postgresql.org/pub/source/v11.11/postgresql-11.11.tar.gz |
解压源码包
1 | tar -zxf postgresql-11.11.tar.gz |
指定安装目录,检查如果中断需要补充相关依赖包
1 2 | cd postgresql-11.11 ./configure --prefix=/opt/postgresql |
安装
1 2 | make make install |
创建数据库和日志目录
1 2 | mkdir -p /opt/postgresql/data mkdir -p /opt/postgresql/log |
添加用户组与用户
1 2 3 | groupadd postgres useradd -g postgres postgres passwd postgres |
把软件目录权限赋予新用户
1 | chown -R postgres:postgres /opt/postgresql |
添加环境变量,并生效
1 2 3 | export PGDATA=/opt/postgresql/data export PGHOME=/opt/postgresql export PATH=$PGHOME/bin:$PATH |
初始化数据库
1 | initdb |
修改数据库连接配置
1 2 3 | vim data/pg_hba.conf #IPv4 local connections: host all all 0.0.0.0/0 md5 |
设置远程连接和默认端口
1 2 3 | vim data/postgresql.conf listen_addresses = '*' port = 5432 |
关闭防火墙
1 | systemctl stop firewalld |
拷贝源码包的启动脚本,配置系统服务
1 2 | cp postgresql-11.11/contrib/start-scripts/linux /etc/init.d/postgresql vim /etc/init.d/postgresql |
1 2 3 4 5 6 7 8 | #Installation prefix prefix=/opt/postgresql #Data directory PGDATA="/opt/postgresql/data" #Who to run the postmaster as, usually "postgres". (NOT "root") PGUSER=postgres #Where to keep a log file PGLOG="/opt/postgresql/log/serverlog" |
给脚本赋予执行权限
1 | chmod +x /etc/init.d/postgresql |
启动数据库服务
1 2 | service postgresql start ps -ef | grep postgres |
本地连接,修改密码
1 2 3 | su - postgres psql \password |