debian安装Postgresql-14.x

一、安装准备

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
相关推荐
脑子进水养啥鱼?2 小时前
PostgreSQL .history 文件
数据库·postgresql
一曦的后花园2 小时前
linux搭建promethes并对接node-exporter指标
linux·运维·服务器
乌托邦的逃亡者3 小时前
CentOS/Openeuler主机中,为一个网卡设置多个IP地址
linux·运维·网络·tcp/ip·centos
拾贰_C3 小时前
【OpenClaw | openai | QQ】 配置QQ qot机器人
运维·人工智能·ubuntu·面试·prompt
桌面运维家3 小时前
服务器进程异常监控:快速定位与排障实战指南
运维·服务器
风曦Kisaki4 小时前
# Linux Shell 编程入门 Day02:条件测试、if 判断、循环与随机数
linux·运维·chrome
木雷坞4 小时前
视觉算法环境 Docker 镜像拉取失败排查
运维·人工智能·docker·容器
郝亚军4 小时前
ubuntu 22.04如何安装libmodbus
运维·服务器·ubuntu
李日灐4 小时前
< 6 > Linux 自动化构建工具:makefile 详解 + 进度条实战小项目
linux·运维·服务器·后端·自动化·进度条·makefile
JZC_xiaozhong4 小时前
跨系统审批自动化怎么做?从采购到销售合同的完整方案
大数据·运维·自动化·流程自动化·数据集成与应用集成·业务流程管理·异构数据集成