Centos7.9离线编译安装postgresql16.0

1、环境准备

centos7.9虚拟机一台

2、软件准备

postgresql-16.0.tar.gz
https://ftp.postgresql.org/pub/source/v16.0/postgresql-16.0.tar.gz

3、依赖安装

yum install -y systemd-devel readline readline-devel zlib-devel gcc

 4、创建数据库用户

useradd postgres


# 设置用户密码,自己根据实际替换
echo "123456" | passwd --stdin postgres

5、编译安装

# 安装目录
mkdir -p /data/server/pgsql

# 数据目录
mkdir -p /data/server/pgsql/data

# 解压编译安装
tar -zxvf postgresql-16.0.tar.gz 
cd postgresql-16.0
./configure --prefix=/data/server/gpsql --without-icu --with-systemd 

make && make install

# 修改目录属主、属组
chown -R postgres:postgres /data/server/pgsql

# 切换用户
su - postgres 
/data/server/pgsql/bin/initdb -D /data/server/pgsql/data # 初始化

6、设置成系统服务

vim /usr/lib/systemd/system/postgresql.service

# 文件内容
[Unit]
Description=PostgreSQL 16.0 database server
Documentation=man:postgres(1)
After=network-online.target
Wants=network-online.target

[Service]
Type=forking
User=postgres
Group=postgres
OOMScoreAdjust=-1000
ExecStart=/data/server/pgsql/bin/pg_ctl start -D /data/server/pgsql/data
ExecStop=/data/server/pgsql/bin/pg_ctl stop -D /data/server/pgsql/data
ExecReload=/data/server/pgsql/bin/pg_ctl reload -D /data/server/pgsql/data
TimeoutSec=0

[Install]
WanteBy=multi-user.target

7、启动服务

systemctl daemon-reload
systemctl enable postgresql
systemctl start postgresql

8、连接数据库

# 切换用户
su - postgres
/data/server/pgsql/bin/psql

# 创建用户以及密码
create user admin password "12345';

# 创建制定拥有者的数据库
create database tt owner admin;

9、配置pgsql的配置文件

# 修改监听地址,否则无法远程连接
listen_addresses = '*'
port = 5432
# 修改最大连接数
max_connections = 1024
# 设置socket目录
unix_socket_directories = '/data/server/pgsql'
# 开启日志获取
logging_collector = on
# 设置日志目录
log_directory = 'pg_log'
# 设置日志文件名称格式
log_filename = 'postgresql-%Y-%m-%d.log'
# 开启日志轮转
log_truncate_on_rotation = on
# pg_hba.conf 调整远程连接的Ip地址

host tt admin xx.xx.xx.xx/24  md5

重启服务即可

### 在 CentOS 7.9安装 libpq 库 要在 CentOS 7.9安装 `libpq` 库,可以通过以下方法实现: #### 方法一:通过 YUM 安装 如果系统已经配置了 PostgreSQL 的官方仓库或者 EPEL 源,则可以直接使用 YUM 工具来安装 `libpq` 及其开发头文件。 运行以下命令以安装必要的软件包: ```bash sudo yum install -y postgresql-libs postgresql-devel ``` 这会安装两个主要的组件: - `postgresql-libs`: 提供基础的共享库支持。 - `postgresql-devel`: 包含用于开发的应用程序接口(API),例如头文件和其他工具[^1]。 #### 方法二:手动下载 RPM 并安装 如果没有启用合适的存储库,也可以从 Fedora 或者 RHEL/CentOS 镜像站点获取对应的 RPM 文件。例如: ```bash wget https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm sudo rpm -ivh pgdg-redhat-repo-latest.noarch.rpm sudo yum install -y postgresql15-libs postgresql15-devel ``` 此方式适用于特定版本需求的情况,并能确保兼容性良好[^3]。 #### 方法三:源码编译安装 当需要自定义构建选项时可以选择从源代码开始编译。以下是基本流程概述: 1. 下载最新稳定版 PostgreSQL 压缩包; 2. 使用 GNU configure 脚本指定目标路径及其他参数完成环境准备; 3. 执行标准 Makefile 构建过程; 4. 将生成的结果复制至最终位置; 具体步骤如下所示: ```bash mkdir -p /opt/src && cd $_ curl -O https://ftp.postgresql.org/pub/source/v16.0/postgresql-16.0.tar.gz tar zxfv postgresql-*.gz && rm *.gz cd postgresql-* || exit ./configure --prefix=/usr/local/pgsql --with-libraries=/usr/lib64 --enable-thread-safety CFLAGS="-march=native" make world && make check-world sudo make install-world echo "/usr/local/pgsql/lib" | sudo tee -a /etc/ld.so.conf.d/custom-pgsql.conf >/dev/null sudo ldconfig ``` 注意这里假设采用默认前缀 `/usr/local/pgsql` 进行安置[^4]。 最后验证是否成功加载动态链接器缓存中的新条目以及测试简单的客户端连接功能即可确认整个设置无误。 ```python import ctypes as ct try: lib = ct.CDLL('libpq.so') except OSError as err: print(f"Error loading library: {err}") else: print("Library loaded successfully.") ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值