《openEuler2403 系统下 PostgreSQL17 完整安装指南:从环境准备到服务启动》
通过以上步骤,PostgreSQL 17已在openEuler 2403上完成部署。
·
以下是openEuler 2403系统下PostgreSQL 17的完整安装指南,包含详细步骤和关键配置:
一、环境准备
-
系统更新
sudo dnf update -y sudo reboot # 可选,确保内核更新生效 -
安装依赖
sudo dnf install -y readline-devel zlib-devel \ libicu-devel systemd-devel openssl-devel python3 -
创建专用用户
sudo groupadd postgres sudo useradd -g postgres -m postgres sudo passwd postgres # 设置密码
二、源码编译安装
-
下载源码
wget https://ftp.postgresql.org/pub/source/v17.0/postgresql-17.0.tar.gz tar -zxvf postgresql-17.0.tar.gz cd postgresql-17.0 -
编译配置
./configure --prefix=/usr/local/pgsql17 \ --with-systemd \ --with-icu \ --with-openssl--with-systemd:支持systemd服务管理--with-icu:启用国际化组件
-
编译与安装
make -j$(nproc) # 使用所有CPU核心加速编译 sudo make install
三、配置环境变量
echo 'export PATH=/usr/local/pgsql17/bin:$PATH' | sudo tee /etc/profile.d/pgsql.sh
echo 'export PGDATA=/var/lib/pgsql/17/data' | sudo tee -a /etc/profile.d/pgsql.sh
source /etc/profile.d/pgsql.sh
四、初始化数据库
-
创建数据目录
sudo mkdir -p $PGDATA sudo chown postgres:postgres $PGDATA -
初始化DB
sudo -iu postgres initdb -D $PGDATA --locale=C.UTF-8 --encoding=UTF8--locale:设置默认区域--encoding:指定数据库编码
五、配置文件调整
-
postgresql.confvi $PGDATA/postgresql.conf修改关键参数:
listen_addresses = '*' # 允许远程连接 port = 5432 # 默认端口 max_connections = 100 # 最大连接数 shared_buffers = 1GB # 共享内存大小 -
pg_hba.conf(访问控制)# 允许所有IP通过密码访问 host all all 0.0.0.0/0 scram-sha-256
六、Systemd服务配置
-
创建服务文件
sudo vi /etc/systemd/system/postgresql17.service内容:
[Unit] Description=PostgreSQL 17 Database Server After=network.target [Service] Type=notify User=postgres Group=postgres Environment=PGDATA=/var/lib/pgsql/17/data ExecStart=/usr/local/pgsql17/bin/postgres -D ${PGDATA} Restart=on-failure [Install] WantedBy=multi-user.target -
启动服务
sudo systemctl daemon-reload sudo systemctl enable --now postgresql17 sudo systemctl status postgresql17 # 验证状态
七、防火墙配置
sudo firewall-cmd --permanent --add-port=5432/tcp
sudo firewall-cmd --reload
八、验证与基本操作
-
连接测试
psql -U postgres -h 127.0.0.1 -d postgres -
创建测试数据库
CREATE DATABASE testdb; \c testdb CREATE TABLE demo (id SERIAL PRIMARY KEY, name VARCHAR(50)); INSERT INTO demo (name) VALUES ('openEuler'); SELECT * FROM demo;
九、常见问题处理
- 启动失败:检查
/var/lib/pgsql/17/data/log/*.log日志文件 - 连接拒绝:确认
pg_hba.conf中IP规则和postgresql.conf的listen_addresses - 内存不足:调整
shared_buffers(建议为系统内存的25%)
十、安全加固建议
-
修改默认账户密码
ALTER USER postgres WITH PASSWORD 'StrongPassword!'; -
定期备份
pg_dumpall -U postgres | gzip > /backups/pg_full_$(date +%F).sql.gz -
启用日志审计
在postgresql.conf中增加:log_statement = 'all' # 记录所有SQL log_connections = on # 记录连接信息
通过以上步骤,PostgreSQL 17已在openEuler 2403上完成部署。后续可通过
pgAdmin或psql客户端进行管理。
鲲鹏昇腾开发者社区是面向全社会开放的“联接全球计算开发者,聚合华为+生态”的社区,内容涵盖鲲鹏、昇腾资源,帮助开发者快速获取所需的知识、经验、软件、工具、算力,支撑开发者易学、好用、成功,成为核心开发者。
更多推荐



所有评论(0)