因国产化改造需求,很多项目会选择使用以PostgresSQL为基础的国产化替代产品。PostgresSQL是开源关系型数据库,因为其稳定和安全性,以及丰富的数据类型和扩展可以使用,在企业新项目开发中会优先选择使用。下面记录一下PostgresSQL数据库的安装过程供参考

一、PostgresSQL下载

官方网站:https://www.postgresql.org/
打开PostgreSQL官网,点击下载按钮:
在这里插入图片描述

可以根据系统选择对应的版本下载,因为我们是使用源码安装,所以这里选择下载源码:
在这里插入图片描述

选择版本,这里我们选择17.7版本:
在这里插入图片描述

点击postgresql-17.7.tar.gz进行源码下载:
在这里插入图片描述
如果服务器可以连接公网的话,可以选择在服务器上直接使用wget下载源码,在文件上单机鼠标右键获取源码链接地址:

wget https://ftp.postgresql.org/pub/source/v17.7/postgresql-17.7.tar.gz

二、编译安装PostgresSQL

1.创建用户

出于安全考虑,一般情况下PostgresSQL数据库不允许运行在root用户下,所以我们先来创建一个普通用户postgres:

#创建应用目录
mkdir /app
#创建用户组
groupadd -g 1101 postgres
#创建用户并指定用户目录
useradd -u 1101 -g postgres -d /app/postgres -c "postgres." -m -s /bin/bash postgres 

2.安装依赖包

yum install -y gcc gcc-c++ libicu-devel bison flex readline-devel zlib-devel

注意这里依赖包可能不全,如果有遗漏的依赖,在编译检查的时候会有提示,需要按照提示安装后再进行编译

3.下载解压PostgresSQL

wget https://ftp.postgresql.org/pub/source/v17.7/postgresql-17.7.tar.gz
tar -zxvf postgresql-17.7.tar.gz

4.配置编译项目

cd postgresql-17.7
./configure --prefix=/app/postgres/pgsql

在这里插入图片描述

5.编译安装

make && make install

在这里插入图片描述

6.设置用户目录权限

chown -R postgres:postgres /app/postgres
chmod -R 755 /app/postgres

7.设置环境变量

sed -i '$a PGHOME=/app/postgres/pgsql' /etc/profile
sed -i '$a export PATH=$PATH:$PGHOME/bin' /etc/profile
source /etc/profile

三、修改配置文件

1.切换到postgres用户

su - postgres

2.创建数据与日志目录

mkdir -p /app/postgres/pgsql/data
mkdir -p /app/postgres/pgsql/log

3.初始化数据目录

initdb /app/postgres/pgsql/data

在这里插入图片描述

4.修改postgresql.conf文件

vi /app/postgres/pgsql/data/postgresql.conf

找到以下行取消注释,并修改参数值:

listen_addresses = '*'     #允许远程连接
port = 5432                #默认端口
max_connections = 1000     #最大连接数
logging_collector = on     #启用日志
log_directory = '/app/postgres/pgsql/log'    #调整日志目录
tcp_keepalives_idle = 30
tcp_keepalives_interval = 5    -- 这里≤5 s
tcp_keepalives_count = 3

在这里插入图片描述

5.修改pg_hba.conf文件

vi /app/postgres/pgsql/data/pg_hba.conf

添加以下行允许所有ip访问:

host    all             all             0.0.0.0/0            md5
host    all             all             ::/0                 md5

在这里插入图片描述

四、启动数据库

1.启动数据库

pg_ctl start -D /app/postgres/pgsql/data -l /app/postgres/pgsql/log/start.log

在这里插入图片描述

2.修改数据库密码

使用psql命令进入pg命令行环境,输入\password修改密码:
在这里插入图片描述
这里PostgresSQL数据库就安装完成了。

五、psql命令行常用命令

\l:列出所有数据库
\c:切换数据库
\d:列出当前库中所有表、视图、序列
\dn:列出所有schema
\du:列出所有用户
\i:执行sql脚本
\q:退出psql命令行

参考文档https://www.postgresql.org/docs/current/install-make.htm

六、添加开启自启

1.创建服务文件

vi /etc/systemd/system/postgresql.service

2.写入内容(路径按你实际目录改)

[Unit]
Description=PostgreSQL 17 database server
After=network.target

[Service]
Type=notify
User=postgres
Group=postgres
# 数据库目录
Environment=PGDATA=/app/postgres/pgsql/data
# 启动命令
ExecStart=/app/postgres/pgsql/bin/postgres -D ${PGDATA}
ExecReload=/bin/kill -HUP $MAINPID
KillMode=mixed
KillSignal=SIGINT
TimeoutSec=0

[Install]
WantedBy=multi-user.target

3.载入并设置开机自启

systemctl daemon-reload
systemctl enable postgresql --now

4.查看状态

systemctl status postgresql

看到 active (running) 即 OK,重启服务器后也会自动拉起。

5.注意


停掉旧进程(如果还想用 systemd 管)
sudo -u postgres pg_ctl -D /app/postgres/pgsql/data stop

#再让 systemd 一次拉起
systemctl start postgresql

#看状态
systemctl status postgresql
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐