如何远程连接PostgreSQL?

tommy9802 2008-12-18 01:50:46
机器环境
A: 192.168.1.1 Windows Server 2003
B: 192.168.1.2 Windows XP pro

如何实现在B机器上利用phpPgAdmin远程登陆A机器?
  

------------------------------------------
在网上查到有这个方法:但测试了还是连接失败!请高手指点!

A机器安装PostgreSQL,默认端口5432
想实现B机器通过远程连接A机器的PostgreSQL服务。
  
如果A机器启动Windows防火墙,则在“例外”中“添加端口”加上5432端口。
  
在postgresql.conf中的修改
listen_addresses = '*'
port = 5432
  
在pg_hba.conf中添加
host all all 192.168.1.2/32 trust
  
在B机器上用phpPgAdmin试试连接A机器192.168.1.1

-----------------------------------------------
...全文
843 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
懒得去死 2008-12-19
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 tommy9802 的回复:]
你得添加一个远程用户??

怎么才叫远程用户?怎么添加?与普通用户有区别?
[/Quote]

跟普通用户一样的。

http://www.learndiary.com/archives/diaries/1856.htm
tommy9802 2008-12-19
  • 打赏
  • 举报
回复
你得添加一个远程用户??

怎么才叫远程用户?怎么添加?与普通用户有区别?
懒得去死 2008-12-19
  • 打赏
  • 举报
回复
记得在防火墙里面添加例外。
懒得去死 2008-12-19
  • 打赏
  • 举报
回复
你得添加一个远程用户,然后在在pg_hba.conf里面添加你的用户以及IP段位TRUST或者MD5。
tommy9802 2008-12-19
  • 打赏
  • 举报
回复
竟然没人理?晕倒!请高手帮忙,加100,解答了愿意再多给分。请各位帮忙!
tommy9802 2008-12-19
  • 打赏
  • 举报
回复
补相关文章一篇:
----------------------------------------------------

众所周知,Postgres 8.1 分别发行了 Linux和Windows 两个版本,
所以,介绍远程连接的主题时,也是分别介绍这两个系统上是如何实现的。
其实,windows版比linux版的步骤少一些。

一、实现远程连接Linux上的PostgreSQL服务器。
主要分两个步骤:
<1>要使Linux上的PostgreSQL打开 “unix的tcpip套接子”。
编辑 $POSTGRES/data/postgresql.conf 文件,
将tcpip_socket=off改成tcpip_socket=on即可。

<2>设置远程访问认证机制。
编辑 $POSTGRES/data/pg_hba.conf 文件,
这个文件上面一大堆都是介绍如何使用这个文件使进行配置的,
最下面才是真正让我们填写东西的地方。
其中,有一行注释:
# TYPE DATABASE USER CIDR-ADDRESS METHOD
说明每一行有五个字段,
分别是:连接类型、可使用的数据库名、使用者、DIDR地址、和验证方法等五项。
下面,我只介绍一些针对每个字段常用的选项。
字段一:TYPE。
可以选择:local或host。
前者只能允许本地的用户登陆Postgres数据库;后者可以接受远程客户登陆。所以,
我们应该使用“host”。
字段二:DATWABSE。
连接用户可以使用的数据库名字。可以使Postgres的一个具体的
数据库名,也可以使用“all”来允许用户访问所有数据库。
字段三:USER。
可以指定某个具体的用户来连接Postgres数据库(还要结合后面的地址字段),
也可以使用“all”来允许所有用户连接数据库。
字段四:DIDR-ADDRESS。
这可能会让您不知所措,不知道它为何物。
其实,它就是IP地址与掩码的另一种表示方法而已。
Postgres是通过这个字段来了解,允许那些IP或IP网段连接此服务器。
它的格式是: IP地址/掩码。
这个掩码和子网掩码是一个道理,只不过是用一个小于等于32的正数来表示,
表示的正是子网掩码中高几位为1,
比如,255.255.255.0 就是“24”,说明高24位是1。
192.168.0.1/32 相当于 IP为192.168.0.1,子网掩码为255.255.255.255的网段,
很显然,这只表明192.168.0.1IP自己。
如果您对IP地址与子网掩码不太了解,请查看相关资料。
字段五:METHOD。
这是验证方法。可选的有:
reject:拒绝这个IP的用户访问;
md5:密码以md5作为hash编码;
password:密码作为明文传输(好恐怖!);
krb5:密码以krb5作为hash编码。

下面举一个例子,来说明如何进行设置:
# TYPE DATABASE USER CIDR-ADDRESS METHOD

#允许IP为192.168.0.1的所有用户登陆到Postgres服务器的所有数据库,采用md5验证。
host all all 192.168.0.1/32 md5

#允许用户testuser在192.168.0.XX的网段任意机器登陆Postgres服务器,
#只能使用数据库testdb,采用md5验证。
host testdb testuser 192.168.0.1/24 md5


--------------------------------------------------------------------------------

二、实现远程连接Windows上的PostgreSQL服务器。
前面都已经看懂后,这个配置就很简单了,除了上面介绍的步骤<1>不用修改后,
只需要配置步骤<2>中介绍的东西即可。(因为winodws不会存在unix的tcpip套接子)。
tommy9802 2008-12-19
  • 打赏
  • 举报
回复
谢谢,已经解决。只有全部得分数都给你了。别的也没人顶我!谢谢您!

在A机的pg_hba.conf中添加

host all all 192.168.1.2/32 trust

如果还需要让192.168.1.3访问,则再添加如下即可!

host all all 192.168.1.3/32 trust

trust也可以用md5的加密方法访问。

56,679

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧