准确!!!Centos8快速安装PG14,并且自定义数据目录和配置修改

news/2024/7/9 20:41:06 标签: postgresql

这是安装pg14最新版本的步骤
sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
sudo dnf -qy module disable postgresql
sudo dnf install -y postgresql14-server
sudo /usr/pgsql-14/bin/postgresql-14-setup initdb
sudo systemctl enable postgresql-14
sudo systemctl start postgresql-14

安装完默认配置
postgres用户家目录:/var/lib/pgsql
数据库软件包安装文件位于 /usr/pgsql-14 目录下。
数据目录位于 /var/lib/pgsql/14/data 下。
配置文件位于 /var/lib/pgsql/14/data/postgresql.conf。此文件包含许多 PostgreSQL 配置参数,例如 max_connections、shared_buffers 等。
认证配置文件位于 /var/lib/pgsql/14/data/pg_hba.conf。该文件包含 PostgreSQL 客户端认证的规则。
服务文件位于 /usr/lib/systemd/system/postgresql-14.service。此文件包含 PostgreSQL 14 服务的启动参数、环境变量和其他信息。
日志文件位于 /var/lib/pgsql/14/data/log 下。

更改 PostgreSQL 的默认数据目录需要几个步骤。首先,您已经在 .bash_profile 中设置了 PGDATA 环境变量为新的数据目录 /data/postgres/pgdata/。接下来,您需要按照以下步骤操作:

  1. 停止 PostgreSQL 服务

    sudo systemctl stop postgresql-14
    
  2. 创建新的数据目录
    确保 /data/postgres/pgdata/ 目录存在,如果不存在,您需要创建它,并确保 postgres 用户有权限访问和操作该目录。

    sudo mkdir -p /data/postgres/pgdata/
    sudo chown postgres:postgres /data/postgres/pgdata/
    sudo chmod 700 /data/postgres/pgdata/
    
  3. 初始化新的数据目录
    postgres 用户身份初始化新的数据目录。

    sudo -u postgres /usr/pgsql-14/bin/initdb -D /data/postgres/pgdata/
    
  4. 修改 systemd 服务文件(可选):
    如果您想让 systemd 服务文件直接使用新的数据目录,您可以编辑 /usr/lib/systemd/system/postgresql-14.service 文件,找到 Environment=PGDATA=... 行并修改路径,然后重新加载 systemd 配置。

    sudo vim /usr/lib/systemd/system/postgresql-14.service
    # 修改 Environment=PGDATA=/data/postgres/pgdata/
    
    sudo systemctl daemon-reload
    
  5. 启动 PostgreSQL 服务

    sudo systemctl start postgresql-14
    
  6. 验证更改
    检查 PostgreSQL 是否正常运行,并且新的数据目录正在被使用。

    sudo -u postgres psql -c "SHOW data_directory;"
    

请确保在执行这些步骤之前备份任何重要数据,以防出现任何错误。如果您的 PostgreSQL 数据库中已经有数据,您可能需要将数据从旧目录迁移到新目录。这通常涉及到使用 pg_basebackup 或类似工具复制数据文件。


为了设置 postgres 用户的环境变量,确保其正确地使用新的 PostgreSQL 数据目录。请按照以下步骤操作:

  1. 进入 postgres 用户的家目录

    cd /var/lib/pgsql
    
  2. 编辑 .bash_profile 文件
    使用 vim 或您喜欢的文本编辑器来编辑 .bash_profile 文件。

    vim .bash_profile
    

    然后添加或修改以下环境变量设置:

    export PATH=/usr/pgsql-14/bin:$PATH
    export LD_LIBRARY_PATH=/usr/pgsql-14/lib 
    export PGDATA=/data/postgres/pgdata/
    

    这些设置会添加 PostgreSQL 的二进制目录到路径中,设置库文件路径,并且定义 PostgreSQL 数据目录的位置。

  3. 应用更改
    保存并关闭 .bash_profile 文件后,您需要让这些更改生效。这可以通过使用 source 命令来完成。

    source .bash_profile
    

    这将立即应用您在 .bash_profile 中所做的更改到当前会话。

确保您是以 postgres 用户或具有适当权限的用户执行这些操作。这些步骤将确保每当 postgres 用户登录时,都会使用正确的环境变量。


由于已经更改了数据目录为 /data/postgres/pgdata/,在修改配置文件时需要注意路径的调整。

4.2 设置超级用户密码

  1. postgres 用户登录操作系统:

    su - postgres
    
  2. 连接到 PostgreSQL 服务:

    psql
    
  3. 更改 postgres 用户的密码:
    在 PostgreSQL 命令行中,执行以下命令:

    \password postgres
    
  4. 退出 PostgreSQL 命令行:

    \q
    

4.3 配置远程访问

  1. 修改 pg_hba.conf 文件以配置认证规则:
    允许所有 IP 地址访问,修改 /data/postgres/pgdata/pg_hba.conf 文件。

    sed -i '$ a\host    all     all     0.0.0.0/0    md5' /data/postgres/pgdata/pg_hba.conf
    
  2. 编辑 postgresql.conf 以允许从任何地址连接:
    默认情况下,PostgreSQL 只接受来自 localhost 的连接请求。您需要编辑 /data/postgres/pgdata/postgresql.conf 文件,将 listen_addresses 设置为 ‘*’。

    sed -i "s/#listen_addresses = 'localhost'/listen_addresses = '*'/g" /data/postgres/pgdata/postgresql.conf
    

4.4 设置 PostgreSQL 的最大连接数

  • 默认最大连接数为 100,您可以将其设置为 1000。

    sed -i 's/^#*\s*max_connections\s*=.*$/max_connections = 1000/' /data/postgres/pgdata/postgresql.conf
    

完成这些更改后,您需要重启 PostgreSQL 服务以使配置生效:

sudo systemctl restart postgresql-14

确保您在进行这些更改时,已经拥有足够的权限,并且在更改配置文件之前做好备份。这些步骤将使您的 PostgreSQL 数据库能够处理远程连接和更多的并发连接。


http://www.niftyadmin.cn/n/5241752.html

相关文章

JVM 如何加载类的? ## JVM 类加载机制分为五个部分:加载,验证,准备,解析,初始化。

文章目录 JVM 如何加载类的?JVM 类加载机制分为五个部分:加载,验证,准备,解析,初始化。加载验证准备解析初始化 JVM 如何加载类的? JVM 类加载机制分为五个部分:加载,验…

HomeAssistant如何添加HACS插件实现公网控制米家与HomeKit等智能家居

HomeAssistant添加HACS插件并实现公网控制米家,HomeKit等智能家居 文章目录 HomeAssistant添加HACS插件并实现公网控制米家,HomeKit等智能家居基本条件一、下载HACS源码二、添加HACS集成三、绑定米家设备 ​ 上文介绍了如何实现群晖Docker部署HomeAssist…

【论文解读】NuScenes-QA:自动驾驶场景的多模态视觉问答基准

来源:投稿 作者:橡皮 编辑:学姐 论文链接:https://arxiv.org/pdf/2305.14836.pdf 开源代码:https://github.com/qiantianwen/NuScenes-QA 摘要: 我们在自动驾驶背景下引入了一种新颖的视觉问答&#xf…

Java_ArrayList顺序表详解

目录 前言 顺序表 ​编辑 顺序表和数组 ArrayList简介 说明 ArrayList使用​编辑 ArrayList常见操作 ArrayList实现二维数组 ArrayList的遍历 ArrayList的扩容机制 总结 前言 一个高端的程序员,往往都是数据结构学的很好,判断一个程序的优劣也是看数据结构学的好与坏.…

DNS协议(DNS规范、DNS报文、DNS智能选路)

目录 DNS协议基本概念 DNS相关规范 DNS服务器的记录 DNS报文 DNS域名查询的两种方式 DNS工作过程 DNS智能选路 DNS协议基本概念 DNS的背景 我们知道主机通信需要依靠IP地址,但是每次通过输入对方的IP地址和对端通信不够方便,IP地址不好记忆 因此提…

08、分析测试执行时间及获取pytest帮助

官方用例 # content of test_slow_func.py import pytest from time import sleeppytest.mark.parametrize(delay,(1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,1.9,1.0,0.1,0.2,0,3)) def test_slow_func(delay):print("test_slow_func {}".format(delay))sleep(delay)assert…

强化学习第1天:强化学习概述

☁️主页 Nowl 🔥专栏《机器学习实战》 《机器学习》 📑君子坐而论道,少年起而行之 ​​ 文章目录 介绍 强化学习要素 强化学习任务示例 环境搭建:gym 基本用法 环境信息查看 创建智能体 过程可视化 完整代码 结语…

发请求/传递过程中出现‘[object Object]‘的问题“

问题:post请求的时候data数据传过去的的时候显示data: [object Object] 问题代码: wx.request( { url: "", header: { "Content-Type": "application/x-www-form-urlencoded" }, method: "POST", data:…