搭建 PostgreSQL

文章讲述了如何配置PostgreSQL的端口、代理以及优化参数如心跳设置来防止远程连接掉线。此外,还涉及到在pg_hba.conf中修改规则以解决密码认证失败的问题,并提供了数据库管理工具pgAdmin4的界面语言设置方法,以及数据库转储和恢复的命令。同时,展示了DruidDataSource与P6SpyDriver的数据库连接配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

端口:5432
代理备份端口:6432
下载 postgresql-15.0-1-windows-x64

乱码显示
配置环境变量 PGDATA=数据目录位置
找到postgresql.conf文件,
修改参数

lc_messages='UTF8'
max_connections = 1000
shared_buffers=4GB
work_mem=8MB

问题:远程易掉线

方案:修改配置信息

tcp_keepalives_idle = 20 #20秒主动发心跳
tcp_keepalives_interval = 10 #10秒未收到返回心跳则本心跳失败
tcp_keepalives_count = 3 #连续3次心跳失败则主动断线

重启PostgreSQL的服务 
C:\Program Files\PostgreSQL\10\bin
pg_ctl restart

远程无法连接
修改对应data目录下的配置文件pg_hba.conf
在配置文件末尾添上:

host   all    all    0.0.0.0/0    md5


---------------------------------------------------------------
数据库管理工具pgAdmin4界面如何设置为中文显示
File->Preferences->Miscellaneous->User language
---------------------------------------------------------------
【StackBuilder 安装PgAgent 】

---------------------------------------------------------------
【SQL转储】

pg_dump seata > d:\seata20221123.bk
.\pg_dump.exe -U postgres -d seata > d:\seata20221123.bk
.\psql.exe -U postgres -d seata2 < d:\seata20221123.bk

问题:password authentication failed for user “postgres”
方案:pg_hba.conf,将文件里local的md5全部改为trust

数据库配置信息:
 

datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: com.p6spy.engine.spy.P6SpyDriver
    url: jdbc:p6spy:postgresql://0.0.0.0:15432/ptc?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=UTC
    username: postgres
    password:

在 Linux 系统上搭建 PostgreSQL 数据库接口涉及多个步骤,包括安装 PostgreSQL、配置网络访问权限以及设置数据库用户和权限等。以下是详细的搭建流程: ### 安装 PostgreSQL 首先,确保系统已添加了适合的软件源以获取 PostgreSQL 的安装包。对于基于 Debian 的发行版(如 Ubuntu 或 Linux Mint),可以使用如下命令添加官方仓库[^1]: ```bash sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' ``` 然后,导入仓库签名密钥: ```bash wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - ``` 更新 APT 缓存并安装 PostgreSQL: ```bash sudo apt update sudo apt install postgresql ``` 对于基于 Red Hat 的系统(如 CentOS),可以通过以下命令安装 PostgreSQL: ```bash sudo yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm sudo yum install postgresql-server postgresql-contrib ``` 初始化数据库集群并启动服务: ```bash sudo postgresql-setup initdb sudo systemctl start postgresql sudo systemctl enable postgresql ``` ### 配置 PostgreSQL 接口 默认情况下,PostgreSQL 只监听本地连接。要允许远程访问,需要编辑 `postgresql.conf` 文件中的 `listen_addresses` 参数。此文件通常位于 `/etc/postgresql/<version>/main/` 目录下(Debian 系)或 `/var/lib/pgsql/data/`(Red Hat 系)。 将 `listen_addresses` 设置为 `'*'` 以监听所有网络接口: ```conf listen_addresses = '*' ``` 此外,还需修改 `pg_hba.conf` 文件来定义客户端认证规则,该文件同样位于上述目录中。添加一条记录以允许特定 IP 范围内的主机通过密码进行连接: ```conf # TYPE DATABASE USER CIDR-ADDRESS METHOD host all all 192.168.0.0/24 md5 ``` 保存更改后重启 PostgreSQL 服务使配置生效: ```bash sudo systemctl restart postgresql ``` ### 创建数据库和用户 切换到 `postgres` 用户并使用 `psql` 命令行工具创建新的数据库和角色: ```bash sudo -i -u postgres psql ``` 在 `psql` 提示符下执行 SQL 命令: ```sql CREATE DATABASE mydatabase; CREATE USER myuser WITH PASSWORD 'mypass'; GRANT ALL PRIVILEGES ON DATABASE mydatabase TO myuser; ``` 退出 `psql` 并测试新创建的数据库是否可以从远程机器访问: ```bash psql -h your_server_ip -U myuser -d mydatabase ``` 如果一切正常,则现在应该能够成功连接到 PostgreSQL 数据库服务器。 ### 安全性考虑 为了提高安全性,建议仅开放必要的端口,并且限制对数据库服务器的访问[^4]。可以通过防火墙规则指定哪些主机可以与 PostgreSQL 通信。例如,在使用 firewalld 的系统上,可以运行以下命令: ```bash sudo firewall-cmd --permanent --add-port=5432/tcp sudo firewall-cmd --reload ``` 这里假设 PostgreSQL 使用的是默认端口 5432。 完成以上步骤后,您已经在 Linux 上成功设置了 PostgreSQL 数据库接口,并进行了基本的安全加固。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老罗技术

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值