一、安装准备
1.1、环境准备
-
postgresql-14.10
-
debian
-
注意:确认linux系统可以正常连接网络,因为在后面需要添加依赖包。
1.2、安装包下载
下载地址:PostgreSQL
选择需要安装的版本进行下载:

或者从官方仓库下载源码包并解压:
bash
wget https://ftp.postgresql.org/pub/source/v14.10/postgresql-14.10.tar.gz
tar -xvf postgresql-14.10.tar.gz
cd postgresql-14.10
注意:版本号 14.10 可替换为最新的 14.x 版本。
1.3、安装依赖包
首先安装编译 PostgreSQL 所需的依赖库:
bash
sudo apt update
sudo apt install -y build-essential libreadline-dev zlib1g-dev flex bison libxml2-dev libxslt-dev libssl-dev
二、安装postgresql
2.1、上传安装包
在根目录下新建 /opt/pgsql 文件夹,并将postgresql的压缩包上传到此文件夹中。
bash
mkdir -p /opt/pgsql
cd /opt/pgsql/
ll
2.2、解压压缩包
bash
tar -zxvf postgresql-14.10.tar.gz
2.3、编译postgresql源码
bash
cd postgresql-14.10
./configure --prefix=/opt/pgsql/postgresql
make && make install
已完成postgresql的安装,进入/opt/pgsql/postgresql 目录可以看到安装后的postgresql的文件。
2.4、创建数据库的数据主目录
bash
#切换到数据库主目录下
cd /opt/pgsql/postgresql/
#创建数据目录
mkdir data
三、创建用户组和用户及授权
3.1、创建用户组和用户
创建一个系统用户用于运行 PostgreSQL 服务:
bash
sudo adduser --system --home /opt/pgsql/postgresql/data --shell /bin/bash postgres
创建用户组
groupadd postgres
bash
groupadd postgres
# 指定目录
useradd -g postgres postgres -d /home/postgres
id postgres
3.2、为数据库的数据授权
bash
#为数据目录授权
chown postgres:postgres data
3.3、创建日志文件路径及授权
确保 postgres 用户对日志文件所在目录有写入权限:
bash
# 创建日志路径
sudo mkdir -p /var/log/postgresql
# 对用户组授权
sudo chown postgres:postgres /var/log/postgresql
四、配置及启动服务
4.1、启动服务
指定目录手动启动 PostgreSQL:
bash
sudo -u postgres /opt/pgsql/postgresql/bin/pg_ctl -D /opt/pgsql/postgresql/data -l /var/log/postgresql/postgresql.log start
4.2、停止服务
bash
sudo -u postgres /opt/pgsql/postgresql/bin/pg_ctl -D /opt/pgsql/postgresql/data stop
4.3、查看端口情况
bash
sudo netstat -tulnp | grep 5432
4.4、配置服务
修改/opt/pgsql/postgresql/data目录下的两个文件。
-
postgresql.conf 配置postgresql数据库服务器的相应的参数。
-
pg_hba.conf 配置对数据库的访问权限。
修改postgresql.conf配置文件:
bash
vi postgresql.conf

其中,参数"listen_addresses"表示监听的IP地址,默认是在localhost处监听,也就是127.0.0.1的ip地址上监听,只接受来自本机localhost的连接请求,这会让远程的主机无法登陆这台数据库,如果想从其他的机器上登陆这台数据库,需要把监听地址改为实际网络的地址,一种简单的方法是,将行开头的#去掉,把这个地址改为*,表示在本地的所有地址上监听。
修改pg_hba.conf配置文件:
bash
vi pg_hba.conf
host all all 0.0.0.0/0 trust
#新增这一行
找到最下面这一行,这样局域网的人才能访问。

4.5、设置开机自启
创建 systemd 服务文件 /etc/systemd/system/postgresql.service
添加内容:
bash
[Unit]
Description=PostgreSQL Database Server
After=network.target
[Service]
Type=forking
User=postgres
Group=postgres
# PostgreSQL 安装路径和数据目录(根据实际路径修改)
Environment=PGDATA=/opt/pgsql/postgresql/data
ExecStart=/opt/pgsql/postgresql/bin/pg_ctl -D /opt/pgsql/postgresql/data -l /var/log/postgresql/postgresql.log start
ExecStop=/opt/pgsql/postgresql/bin/pg_ctl -D /opt/pgsql/postgresql/data stop
ExecReload=/opt/pgsql/postgresql/bin/pg_ctl -D /opt/pgsql/postgresql/data reload
# 启动超时设置(可选)
TimeoutSec=300
# 重启策略(可选)
Restart=on-failure
RestartSec=5s
[Install]
WantedBy=multi-user.target
然后启用服务:
bash
sudo systemctl daemon-reload
sudo systemctl enable postgresql
sudo systemctl start postgresql
#停止
sudo systemctl stop postgresql
4.6、配置环境变量
将 PostgreSQL 可执行文件路径添加到 PATH:
bash
echo 'export PATH=/opt/pgsql/postgresql/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
4.6、验证安装
检查版本并连接数据库:
bash
psql --version
psql -U postgres -h localhost