PostgreSQL源码编译
环境:Ubuntu 16.04+PostgresQL13.2
1、指定安装路径
./configure --prefix=/opt/postgresql
2、编译安装
sudo make sudo make install
3、添加用户和用户组
sudo groupadd postgres sudo useradd -g postgres postgres
4、创建数据库文件目录
sudo mkdir /opt/postgresql/data
5、用户文件访问权限变更
sudo chown postgres /opt/postgresql/data/ sudo chgrp postgres /opt/postgresql/data/
6、数据库初始化
sudo su postgres /opt/postgresql/bin/initdb -D /opt/postgresql/data/
初始化成功后,如下图所示:
7、配置
配置允许访问的IP(所有IP都可以访问则对应为0.0.0.0/0)。
vim /opt/postgresql/data/pg_hba.conf
添加如下内容
配置监听地址和端口号:
vim /opt/postgresql/postgresql.conf
内容:
listen_addresses = '*' port = 5433
8、启动数据库
/opt/postgresql/bin/pg_ctl -D /opt/postgresql/data -l /opt/postgresql/data/logfile start
9、登录数据库
./psql postgres -p 5433
10、创建开机启动服务
进入系统目录:
cd /etc/systemd/system/
创建postgresql.service文件:
[Unit] Description=postgresql 13.2 After=network.target auditd.service [Service] User=postgres Type=forking PIDFile=/opt/postgresql/data/postmaster.pid ExecStart=/usr/local/pgsql/bin/pg_ctl -D /opt/postgresql/data -l /opt/postgresql/data/logfile start ExecReload=/bin/kill -HUP $MAINPID KillMode=process Restart=on-failure RestartPreventExitStatus=255 [Install] WantedBy=multi-user.target
or
[Unit] Description=postgresql 13.2 After=network.target auditd.service [Service] User=postgres ExecStart=/opt/postgresql/bin/pg_ctl -D /opt/postgresql/data -l /opt/postgresql/data/logfile start ExecReload=/bin/kill -HUP $MAINPID KillMode=process Restart=on-failure RestartPreventExitStatus=255 Type=notify [Install] WantedBy=multi-user.target
最后启动服务即可。
11、开放防火墙
sudo iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 5433 -j ACCEPT