解决postgresql无法远程访问的情况

今天刚入手这个数据库玩玩,发现无法通过IP去访问数据库,后面查询原因为,该数据库默认只能通过本地连接,也就是回环地址(127.0.0.1)

解决方案:

1.修改安装目录下的data\pg_hba.conf,在配置文件最后有IPV4和IPV6的配置,新增一行(这里我用的IPV4,开放所有IP)

host all all 0.0.0.0/0 md5

说明:

该配置为允许所有IP访问,下面有对应的一些配置示例提供参考

32 -> 192.168.1.1/32 表示必须是来自这个IP地址的访问才合法;

24 -> 192.168.1.0/24 表示只要来自192.168.1.0 ~ 192.168.1.255的都合法;

16 -> 192.168.0.0/16 表示只要来自192.168.0.0 ~ 192.168.255.255的都合法;

8 -> 192.0.0.0/16 表示只要来自192.0.0.0 ~ 192.255.255.255的都合法;

0 -> 0.0.0.0/0 表示全部IP地址都合法,合法的IP地址即可;

2.保存即可(我用的版本为最新版本9.6.0),通过客户端工具直接连接测试即可.

PS:

另外有看到说要修改两个配置文件的,一个是上面的配置文件,还有个是postgresql.conf,将配置文件的listen_addresses修改为监听所有,也就是listen_addresses = '*',不过我发现我的默认就是这个,也就没修改了,这里也可以进行端口号修改,但是改了之后必须重启才生效.

补充:Postgresql客户端不能远程连接数据库服务器 org.postgresql.util.PSQLException:

Postgresql安装完成之后,默认情况下是不允许远程客户端直接连接的,并且默认的监听配置文件里边,监听的服务器地址是127.0.0.1即:localhost

报如下错误

org.postgresql.util.PSQLException: FATAL: no pg_hba.conf entry for host "<host_ip>", user "fkong", database "fkong", SSL off

因此我们需要修改两个地方,pg_hba.conf postgresql.conf

odoo@odooV01:/etc/postgresql/9.6/main$ pwd
/etc/postgresql/9.6/main
odoo@odooV01:/etc/postgresql/9.6/main$
odoo@odooV01:/etc/postgresql/9.6/main$ ls
environment pg_ctl.conf pg_hba.conf pg_ident.conf postgresql.conf start.conf
odoo@odooV01:/etc/postgresql/9.6/main$ 

(1)在PostgreSQL数据库的安装目录下找到pg_hba.conf, vi打开,找到

“# IPv4 local connections:”

在其下加上请求连接的机器IP

默认配置:

host all all 127.0.0.1/32 md5

32是子网掩码的网段;md5是密码验证方法,可以改为trust

即:

host all all 你的客户端IP/32 trust

或者允许所有不同网段机器访问:

host all all 0.0.0.0/0 trust

(2) 同样在该目录下,vi 打开postgresql.conf文件 找到 listen_addresses = 'localhost' 这一行,

修改为:

listen_addresses = '*'

(3) 重启postgresql服务,和其他服务一样还是用systemd进行管理:

切换到:postgres用户 执行重启服务操作:

systemctl stop postgresql-9.6 #停止服务
systemctl start postgresql-9.6 #启动服务

其他命令:

systemctl restart postgresql-9.6 #重启服务
systemctl enable postgresql-9.6 #自动启动
service postgresql-10 start
或者(注意不同的版本指定不同版本号)
service postgresql-9.6 start

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。

(0)

相关推荐

  • PostgreSQL数据库中跨库访问解决方案

    PostgreSQL跨库访问有3种方法:Schema,dblink,postgres_fdw. 方法A:在PG上建立不同SCHEMA,将数据和存储过程分别放到不同的schema上,经过权限管理后进行访问. 方法A的示例如下: 测试1(测试postgres超级用户对不同schema下对象的访问) 查看当前数据库中的schema postgres=# \dn List of schemas Name | Owner -------------------+--------- dbms_job_pro

  • PostgreSQL 允许远程访问设置的操作

    postgres远程连接方式配置 配置pg_hba.conf文件 目录C:\Program Files\PostgreSQL\9.5\data (QXY)主机 [postgres@qxy data]$ pwd /spark/pgsql/data [postgres@qxy data]$ cat pg_hba.conf # TYPE DATABASE USER ADDRESS METHOD # "local" is for Unix domain socket connections o

  • PostgreSQL 设置允许访问IP的操作

    PostgreSQL安装后默认只能localhost:5432访问 检验方法: curl localhost:5432 # 访问成功提示 curl: (52) Empty reply from server curl 127.0.0.1:5432 # 访问不成功提示 curl: (7) Failed to connect to 172.17.201.227 port 5432: Connection refused 修改pg_hba.conf pg_hba.conf和postgresql.con

  • Postgresql开启远程访问的步骤全纪录

    前言 安装PostgreSQL数据库之后,默认是只接受本地访问连接.如果想在其他主机上访问PostgreSQL数据库服务器,就需要进行相应的配置.下面话不多说了,来一起看看详细的介绍吧. 步骤如下: 要在Postgresql中允许远程访问,需要设置如下2个文件: postgresql.conf pg_hba.conf 然而由于系统安装的是Centos 7,而默认的Postgresql版本为9.2,于是安装了个9.6的版本,却发现在配置好远程无法访问.而默认的路径是找不到上述2个文件的,此时可以通

  • 解决postgresql无法远程访问的情况

    今天刚入手这个数据库玩玩,发现无法通过IP去访问数据库,后面查询原因为,该数据库默认只能通过本地连接,也就是回环地址(127.0.0.1) 解决方案: 1.修改安装目录下的data\pg_hba.conf,在配置文件最后有IPV4和IPV6的配置,新增一行(这里我用的IPV4,开放所有IP) host all all 0.0.0.0/0 md5 说明: 该配置为允许所有IP访问,下面有对应的一些配置示例提供参考 32 -> 192.168.1.1/32 表示必须是来自这个IP地址的访问才合法:

  • 解决PostgreSQL 执行超时的情况

    使用背景 最近在使用PostgreSQL的时候,在执行一些数据库事务的时候,先后出现了statement timetout 和idle-in-transaction timeout的问题,导致数据库操作失败. 经研究查找,PostgreSQL有关于SQL语句执行超时和事务执行超时的相关配置,而默认超时时间是10000毫秒,即10秒钟的时间,这样会导致执行时间稍长的任务执行失败.可以通过修改PostgreSQL服务器配置文件的方式修改默认配置. 参数说明 statement_timeout sta

  • 解决postgresql 数据库 update更新慢的原因

    ;大约140000条数据) 竟然运行了一个小时还没有完成 下面是我的几点解决方案 我的update 语句 是从一个临时表更新值到另一个正式表 因为具体数据需要保密,我就不截图了 只说说大体思路,与方法 1.查看语句是否有问题 复制俩个一模一样的表 和数据 手动执行语句 发现不到一分钟就运行成功了 这样就可以确认语句没有问题 2.查找影响updata的因素 我的第一反应是不是有锁 有锁的情况会导致等待或者死锁 查询锁 select w1.pid as 等待进程, w1.mode as 等待锁模式,

  • 完美解决android M上锁屏情况下,禁止pc通过MTP访问手机存储单元

    1.问题解决主要文件:/m8976/packages/providers/MediaProvider/src/com/android/providers/media/MtpService.java 需要在MtpService.java中updateDisabledStateLocked 方法添加锁屏情况限制: final KeyguardManager keyguardManager = (KeyguardManager) getSystemService( Context.KEYGUARD_S

  • 解决SQL Server虚拟内存不足情况

    解决SQL Server虚拟内存不足情况 症状 在具有 2 GB 或更多 RAM 的计算机上,除了 256 MB (SQL Server 7.0) 或 384 MB (SQL Server 2000) 虚拟地址空间之外,SQL Server 在启动过程中保留剩下的所有虚拟地址空间以供缓冲池使用.另外,为了存储数据和过程缓存,SQL Server 使用缓冲池内存为来自 SQL Server 进程的大多数小于 8 KB 的其他内存请求提供服务.剩下的未保留内存准备用于不能从缓冲池得到服务的其他分配.

  • 解决Redis开启远程访问及密码问题

    Redis开启远程访问及密码,具体介绍如下所示: 一.开启远程访问 1.开放端口 firewall-cmd --zone=public --add-port=6379 firewall-cmd --zone=public --add-port=6379 --permanent 2.查看已开放端口 firewall-cmd --list-port 3.修改配置文件 vim redis.conf 将bind 127.0.0.1 注释或者改为bind 0.0.0.0 将protected-mode y

  • Postgresql设置远程访问的方法(需要设置防火墙或者关闭防火墙)

    Postgresql我通过百度已经将pg_hba.conf和postgresql.conf文件设置好(网上bd一大堆) pg_hba.conf # TYPE DATABASE USER ADDRESS METHOD host all all 0.0.0.0/0 trust # IPv4 local connections: host all all 127.0.0.1/32 md5 host all all 0.0.0.0/0 trust # IPv6 local connections: ho

  • 快速解决PostgreSQL中的Permission denied问题

    想开始学习SQL和Excel那本书,觉得自己亲手去输入才是正道.发现程序后续会用到窗口函数,可是我的mysql没有窗口函数,这本书所提供的数据脚本分别是MS SQL Sever和PostreSQL. 上午我先安装的sql sever,可是由于比较大且在安装时出现了一些小的问题(安装缓慢,服务启动不了).无奈选择了PostreSQL,体积小,安装顺利. 导入数据比较特别,先建一个表,然后把同名txt导入进去.一定要用unix方式的路径. copy这个语句先前在mysql上没有遇到过.学习下....

  • 解决postgresql表中的字段名称包含特殊符号的问题

    在创建postgresql表的时候,由于字段中包含了"()"这种特殊字符,导致创建表的时候报错. 解决方法: 给包含特殊字符的字段加上双引号"",再进行创建表即可 例如: create table freighttransport_tab ( id serial, 日期 TEXT, "重量(公斤)" TEXT ) 此时"重量(公斤)"字段包含特殊符号(),创建表时,在sql语句中对该字段添加双引号即可. 补充:PostgreS

随机推荐