腾讯云OpenCloudOS 9.2源码编译离线安装PostgreSQL数据库
PostgreSQL是一款功能强大的开源对象关系数据库系统(ORDBMS),以其可靠性、可扩展性和稳定性著称,广泛应用于企业级数据管理场景。本文将详细介绍如何在腾讯云OpenCloudOS 9.2环境中离线安装和配置PostgreSQL 17.4。
1. 准备工作
1.1 下载PostgreSQL源码包
访问PostgreSQL官方网站,获取所需版本的源码包。本文以17.4版本为例:
1wget https://ftp.postgresql.org/pub/source/v17.4/postgresql-17.4.tar.gz
1.2 创建专用用户和目录
为PostgreSQL创建独立的系统用户和组,并设置相关目录:
1# 创建用户和组
2groupadd -g 60000 pgsql
3useradd -u 60000 -g pgsql pgsql
4echo "Ar2025(?)" | passwd --stdin pgsql
5
6# 创建目录结构
7mkdir -p /data/{pgdata,archive,scripts,backup,pg17,soft}
8chown -R pgsql:pgsql /data
9chmod -R 775 /data
目录说明:
pgdata
:数据库主目录(数据文件、配置)
pg17
:二进制程序安装路径
archive
:WAL 归档日志
backup
:物理备份
scripts
:维护脚本
soft
:源码包存放位置
2. 安装依赖与编译
2.1 安装依赖包
确保系统已安装必要的依赖包:
1yum install -y cmake make gcc zlib gcc-c++ perl readline readline-devel zlib zlib-devel \
2perl python36 tcl openssl ncurses-devel openldap pam perl-IPC-Run libicu-devel
需要确保依赖全部安装上,缺少依赖包时configure会提示
2.2 编译与安装
切换到pgsql
用户,解压源码包并编译安装:
1su - pgsql
2cd /data/soft
3tar zxvf postgresql-17.4.tar.gz
4cd postgresql-17.4
5./configure --prefix=/data/pg17
6echo $? # 检查configure执行结果,0表示成功
7make -j 8 && make install
8make world -j 8 && make install-world
3. 配置环境变量
为pgsql
用户配置环境变量,确保PostgreSQL正常运行:
1cat >> ~/.bash_profile <<"EOF"
2export LANG=en_US.UTF-8
3export PS1="[\u@\h \W]\$ "
4export PGPORT=5432
5export PGDATA=/data/pgdata
6export PGHOME=/data/pg17
7export LD_LIBRARY_PATH=$PGHOME/lib:/lib64:/usr/lib64:/usr/local/lib64:/lib:/usr/lib:/usr/local/lib:$LD_LIBRARY_PATH
8export PATH=$PGHOME/bin:$PATH:.
9export DATE=`date +"%Y%m%d%H%M"`
10export MANPATH=$PGHOME/share/man:$MANPATH
11export PGHOST=$PGDATA
12export PGUSER=postgres
13export PGDATABASE=postgres
14EOF
15source ~/.bash_profile
4. 初始化数据库
4.1 初始化数据库实例
使用initdb
命令初始化数据库:
1/data/pg17/bin/initdb -D /data/pgdata -E UTF8 --locale=en_US.utf8 -U postgres --data-checksums
参数说明:
-D
:指定数据目录位置
-E UTF8
:设置默认字符集为UTF8
--locale
:指定排序规则
--data-checksums
:启用数据页校验(建议开启,但可能影响性能)
4.2 调整配置文件
修改postgresql.conf
和pg_hba.conf
文件以优化配置:
postgresql.conf:
1cat >> /data/pgdata/postgresql.conf <<"EOF"
2listen_addresses = '*'
3port=5432
4unix_socket_directories='/data/pgdata'
5logging_collector = on
6log_directory = 'pg_log'
7log_filename = 'postgresql-%a.log'
8log_truncate_on_rotation = on
9EOF
参数说明:
listen_addresses = '*':允许远程连接。
logging_collector:启用日志收集。
pg_hba.conf:
1cat >> /data/pgdata/pg_hba.conf <<"EOF"
2local all all trust
3host all all 127.0.0.1/32 trust
4host all all 0.0.0.0/0 md5
5host replication all 0.0.0.0/0 md5
6EOF
参数说明
trust:允许本地无密码连接(仅限测试环境)
md5:远程连接需密码验证。
5. 启动与管理服务
PG数据库管理命令
1pg_ctl start #启动数据
2pg_ctl status # 查看状态
3pg_ctl stop #停止数据
4pg_ctl restart #重启实例。
5pg_ctl reload #重载配置(不重启服务)
5.1 启动数据库
使用pg_ctl
命令启动数据库:
5.2 设置管理员密码
为postgres
用户设置密码:
1psql -c "alter user postgres with password 'Ar2025(?)';"
5.3 配置systemd服务管理
创建systemd服务文件,方便管理PostgreSQL服务:
1cat > /etc/systemd/system/pg17.service <<"EOF"
2[Unit]
3Description=PostgreSQL database server
4After=network.target
5
6[Service]
7Type=forking
8User=pgsql
9Group=pgsql
10Environment=PGPORT=5432
11Environment=PGDATA=/data/pgdata
12ExecStart=/data/pg17/bin/pg_ctl start -D ${PGDATA} -s -o "-p ${PGPORT}" -w -t 300
13ExecStop=/data/pg17/bin/pg_ctl stop -D ${PGDATA} -s -m fast
14ExecReload=/data/pg17/bin/pg_ctl reload -D ${PGDATA} -s
15
16[Install]
17WantedBy=multi-user.target
18EOF
启用并启动服务:
1systemctl daemon-reload
2systemctl enable pg17.service
3systemctl start pg17.service
6. 验证与测试
通过以下命令检查数据库状态:
1pg_ctl status
2psql -c "SELECT version();"
使用Navicat工具链接PostgreSQL数据
总结
本文详细介绍了在腾讯云OpenCloudOS 9.2环境中离线安装和配置PostgreSQL 17.4的完整流程。通过合理的配置和管理,可以快速搭建一个高性能、高可用的数据库环境。