当前位置: 首页 > news >正文

2025 Centos 安装PostgreSQL

 1. 下载和安装

# 确保目录存在
mkdir -p /usr/local/share/
cd /usr/local/share/# 下载安装包 (版本看官网)
curl -# -O https://ftp.postgresql.org/pub/source/v15.7/postgresql-15.7.tar.bz2# 2025yum源不可用!!!! 切换yum源,回车、回车 下一步
bash <(curl -sSL https://gitee.com/SuperManito/LinuxMirrors/raw/main/ChangeMirrors.sh)# 下载编译所需依赖
yum -y install gcc make libicu-devel readline-devel zlib-devel openssl-devel libxml2-devel bzip2# 解压源码包
tar jxvf postgresql-15.7.tar.bz2 -C /usr/local/share/# 进入源码目录
cd /usr/local/share/postgresql-15.7# 配置安装路径
./configure --prefix=/usr/local/share/postgresql-15.7# 编译(可选加 -j 并行编译)
make# 安装
sudo make install

 2. 配置相关环境变量和数据目录、日志目录、数据用户等

# 创建专属用户 并设置密码:123456
useradd postgresecho "123456" | passwd --stdin postgres# 创建数据和日志目录
mkdir -p /usr/local/share/postgresql-15.7/{data,log}# 绑定目录所属
chown -R postgres.postgres /usr/local/share/postgresql-15.7# 保证系统可执行 (如果没有bin目录  mkdir -p /usr/local/bin/)
ln -s /usr/local/share/postgresql-15.7/bin/* /usr/local/bin# 使用非root用户进行数据库初始化
su - postgres/usr/local/share/postgresql-15.7/bin/initdb -D /usr/local/share/postgresql-15.7/data# 编辑配置基础文件
vim /usr/local/share/postgresql-15.7/data/postgresql.conf# -----------------------------------------------------------------------------
listen_addresses = '*'                                    # 监听所有网段 , 默认监听本机
port = 5432                                               # 监听的TCP端口号 , 默认值5432
max_connections = 100                                     # 最大连接数 , 默认值100
log_directory = '/usr/local/share/postgresql-15.7/log'    # log日志存放路径# -----------------------------------------------------------------------------# 编辑配置权限文件
vim /usr/local/share/postgresql-15.7/data/pg_hba.conf# -----------------------------------------------------------------------------
# 表示那个用户 可以使用什么方式【本地(local)/远程(host)】访问 那个数据库,是否需要密码(trust不需要/md5需要)
# 如果是生产的 请使用类似下面的(CIDR表示法)区分网段# host    sonar           sonar           192.168.208.10/24       trust# 我这里为了方便 允许任意用户可连接
host    all             all             0.0.0.0/0               md5
host    all             all             ::/0                    md5# -----------------------------------------------------------------------------# 换回root用户进行环境变量配置(shell 脚本的运行需要使用变量)
exit
vim /etc/profile# -----------------------------------------------------------------------------
export PGHOME=/usr/local/share/postgresql-15.7
export PGDATA=/usr/local/share/postgresql-15.7/data
export PGPORT=5432
export PGUSER=postgres
export PATH=$PATH:$PGHOME/bin# -----------------------------------------------------------------------------# 刷新环境变量
source /etc/profile# ===============使用shell 配置systemd===============cd /
vim postgresql_service.sh# -----------------------------------------------------------------------------
#!/bin/bash
create_postgresql_service() {# 如果 PGUSER 或 PGDATA 未设置,使用默认值: ${PGUSER:=postgres}: ${PGDATA:=/usr/local/share/postgresql-15.7/data}cat > /usr/lib/systemd/system/postgresql.service <<-EOF[Unit]Description=PostgreSQL database serverDocumentation=https://www.postgresql.org/docs/15/index.htmlAfter=network.target[Service]User=$PGUSERGroup=$PGUSERType=forkingExecStart=/usr/local/share/postgresql-15.7/bin/pg_ctl -D $PGDATA startExecStop=/usr/local/share/postgresql-15.7/bin/pg_ctl -D $PGDATA stop -m fastRestart=alwaysTimeoutSec=300[Install]WantedBy=multi-user.targetEOF
}echo "PostgreSQL systemd service file created at /usr/lib/systemd/system/postgresql.service"# 执行函数创建服务文件
create_postgresql_service# 重新加载 systemd
systemctl daemon-reloadecho "Systemd configuration reloaded. You can now enable and start PostgreSQL:"
echo "启动服务:sudo systemctl start postgresql"
echo "开机自启:sudo systemctl enable postgresql"# -----------------------------------------------------------------------------# ===============启动PostgreSQL===============# 赋予postgresql_service.sh 可执行权限
chmod -R 777 postgresql_service.sh# 执行
sh postgresql_service.sh# 启动
sudo systemctl start postgresql# 开机自启
sudo systemctl enable postgresql# ===============准备数据库及用户===============# 进入pg命令控制台
psql# 创建新用户
postgres=# CREATE ROLE sonar WITH LOGIN PASSWORD '123456';# 创建名为sonar 数据库
postgres=# CREATE DATABASE sonar OWNER sonar;# 授予数据库访问权限
postgres=# GRANT ALL PRIVILEGES ON DATABASE sonar TO sonar;# 退出
postgres=# \q# 创建专属数据库用户
useradd sonar
echo "123456" | passwd --stdin sonarvim /etc/sudoers# -----------------------------------------------------------------------------sonar    ALL=(ALL)       ALL# -----------------------------------------------------------------------------

补充:如果安装过程有出现错乱,可以考虑重新安装

# 删除bin 目录
rm -rf /usr/local/share/postgresql-15.7/bin# 清理目录 data/ 和log/的数据
rm -rf /usr/local/share/postgresql-15.7/data/*
rm -rf /usr/local/share/postgresql-15.7/log/*# 清理编译文件cd /usr/local/share/postgresql-15.7/
make clean# 重复之前的安装操作完成安装。 如果是文件损坏,有必要重新下载安装包

http://www.dtcms.com/a/267388.html

相关文章:

  • Java类变量(静态变量)
  • LangChain:向量存储和检索器(入门篇三)
  • 【Qt】qml组件对象怎么传递给c++
  • appnium-巨量测试
  • LVGL移植(外部SRAM)
  • ESP32-S3开发板播放wav音频
  • 应急响应靶机-linux1-知攻善防实验室
  • 介绍electron
  • 若依学习笔记1-validated
  • Qt工具栏设计
  • Tensorboard无法显示图片(已解决)
  • 编程中的英语
  • CHAIN(GAN的一种)训练自己的数据集
  • Ubuntu基础(监控重启和查找程序)
  • 【Elasticsearch】深度分页及其替代方案
  • 基于 Python Django 和 Spark 的电力能耗数据分析系统设计与实现7000字论文实现
  • .NET9 实现排序算法(MergeSortTest 和 QuickSortTest)性能测试
  • Redis--黑马点评--基于stream消息队列的秒杀优化业务详解
  • 升级到MySQL 8.4,MySQL启动报错:io_setup() failed with EAGAIN
  • 每日算法刷题Day42 7.5:leetcode前缀和3道题,用时2h
  • Node.js worker_threads:并发 vs 并行
  • 洛谷刷题9
  • 如何在idea里快速地切换Windows CMD、git bash、powershell
  • 谷物干燥的滚筒式烘干机的设计cad【11张】三维图+设计说明书+绛重
  • LinkedList剖析
  • OneCode 图表组件核心优势解析
  • Kafka消息积压全面解决方案:从应急处理到系统优化
  • <script setup>中的setup作用以及和不带的区别对比
  • DeepSeek飞机大战小游戏HTML5(附源码)
  • 【动态规划】笔记—完全背包问题