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

【PostgreSQL】PostgreSQL数据库允许其他IP连接到数据库(Windows Linux)

要让PostgreSQL数据库允许其他IP连接到数据库,需要进行以下几个步骤的配置:

1. 修改postgresql.conf文件

首先,需要修改PostgreSQL的主配置文件postgresql.conf,允许数据库监听所有IP的连接请求。

1.1 找到postgresql.conf文件

该文件通常位于PostgreSQL的主目录下,比如:

  • Linux: /etc/postgresql/<版本号>/main/postgresql.conf
  • Windows: C:\Program Files\PostgreSQL\<版本号>\data\postgresql.conf
1.2 修改listen_addresses配置

打开postgresql.conf文件,找到listen_addresses配置项,将其修改为如下内容:

listen_addresses = '*'

这表示允许数据库监听所有IP地址的连接请求。如果只想允许特定的IP连接,可以将*替换为相应的IP地址。

2. 修改pg_hba.conf文件

PostgreSQL通过pg_hba.conf文件来控制客户端连接数据库的访问权限。你需要在此文件中添加允许其他IP连接的配置。

2.1 找到pg_hba.conf文件

该文件通常和postgresql.conf文件在同一目录下,比如:

  • Linux: /etc/postgresql/<版本号>/main/pg_hba.conf
  • Windows: C:\Program Files\PostgreSQL\<版本号>\data\pg_hba.conf
2.2 添加访问权限

在文件的末尾添加如下内容:

# TYPE  DATABASE        USER            ADDRESS                 METHOD
host    all             all             0.0.0.0/0               md5

这表示允许所有IP(0.0.0.0/0)的用户使用md5加密方式连接到所有数据库。如果只允许特定IP连接,可以将0.0.0.0/0替换为具体的IP地址或网段,例如192.168.1.0/24

3. 重启PostgreSQL服务

完成上述配置后,需要重启PostgreSQL服务使配置生效:

Linux系统:
sudo systemctl restart postgresql

sudo service postgresql restart
Windows系统:

可以通过“服务管理器”重启PostgreSQL服务,或者在命令提示符中输入:

net stop postgresql-x64-<版本号>
net start postgresql-x64-<版本号>

4. 防火墙设置

确保服务器上的防火墙允许PostgreSQL的端口(默认是5432)通过。

Linux(以ufw为例):
sudo ufw allow 5432/tcp
Windows:

在“控制面板” > “系统和安全” > “Windows Defender防火墙” > “高级设置”中创建一个新的入站规则,允许5432端口的TCP连接。

5. 数据库用户权限

确保所连接的用户在数据库中具有相应的权限,可以使用以下命令在数据库中创建用户并授权:

CREATE USER your_username WITH PASSWORD 'your_password';
GRANT ALL PRIVILEGES ON DATABASE your_database TO your_username;

完成上述步骤后,外部IP应该可以连接到PostgreSQL数据库了。如果仍然无法连接,请检查防火墙和网络设置是否正确。

相关文章:

  • MATLAB案例 | Copula的密度函数和分布函数图
  • vue echarts tooltip动态绑定模板,并且处理vue事件绑定
  • 将ai模型部署在服务器,会比本地离线更快吗
  • Proteus-7.8sp2安装
  • 论文阅读 | 一种基于潜在向量优化的可证明安全的图像隐写方法(TMM 2023)
  • Apache Cordova和PhoneGap
  • Redis支持数据类型,它们各自的应用场景是
  • 基于深度学习的文本情感原因提取研究综述——论文阅读
  • Spring Boot 2.x基础教程:实现文件上传
  • 理解:基础地理实体相关概述
  • 局域网中实现一对一视频聊天(附源码)
  • Shp2pb:Shapefile转Protocol Buffers的高效工具
  • 直线模组降噪攻略
  • 【专题】2024年中国白酒行业数字化转型研究报告合集PDF分享(附原数据表)
  • 高性能计算应用优化实践之WRF
  • 《剑指offer》分解让复杂问题更简单
  • Docker容器管理
  • javascript从右向左截取指定位数字符的3种方法
  • Java教程_软件开发基础
  • leetcode-27. Remove Element
  • miniui datagrid 的客户端分页解决方案 - CS结合
  • Mybatis初体验
  • SAP云平台运行环境Cloud Foundry和Neo的区别
  • SpiderData 2019年2月25日 DApp数据排行榜
  • swift基础之_对象 实例方法 对象方法。
  • Twitter赢在开放,三年创造奇迹
  • Vue2.x学习三:事件处理生命周期钩子
  • Webpack 4x 之路 ( 四 )
  • Webpack入门之遇到的那些坑,系列示例Demo
  • 你不可错过的前端面试题(一)
  • 如何选择开源的机器学习框架?
  • 设计模式(12)迭代器模式(讲解+应用)
  • 数组大概知多少
  • 通过npm或yarn自动生成vue组件
  • 项目管理碎碎念系列之一:干系人管理
  • k8s使用glusterfs实现动态持久化存储
  • 你学不懂C语言,是因为不懂编写C程序的7个步骤 ...
  • ​LeetCode解法汇总2808. 使循环数组所有元素相等的最少秒数
  • ​软考-高级-信息系统项目管理师教程 第四版【第14章-项目沟通管理-思维导图】​
  • ###51单片机学习(1)-----单片机烧录软件的使用,以及如何建立一个工程项目
  • #传输# #传输数据判断#
  • #我与Java虚拟机的故事#连载17:我的Java技术水平有了一个本质的提升
  • #我与虚拟机的故事#连载20:周志明虚拟机第 3 版:到底值不值得买?
  • (Repost) Getting Genode with TrustZone on the i.MX
  • (vue)页面文件上传获取:action地址
  • (二十五)admin-boot项目之集成消息队列Rabbitmq
  • (一)Mocha源码阅读: 项目结构及命令行启动
  • (译) 理解 Elixir 中的宏 Macro, 第四部分:深入化
  • (原创) cocos2dx使用Curl连接网络(客户端)
  • (原创)boost.property_tree解析xml的帮助类以及中文解析问题的解决
  • (转)Groupon前传:从10个月的失败作品修改,1个月找到成功
  • (最完美)小米手机6X的Usb调试模式在哪里打开的流程
  • * CIL library *(* CIL module *) : error LNK2005: _DllMain@12 already defined in mfcs120u.lib(dllmodu
  • .net 4.0发布后不能正常显示图片问题
  • .net core 外观者设计模式 实现,多种支付选择