【问题标题】:how to specify host using ip address instead of name to connect to postgres database using netbeans in a java project?java - 如何在java项目中使用IP地址而不是名称指定主机以使用netbeans连接到postgres数据库?
【发布时间】:2014-07-17 06:14:52
【问题描述】:

我想使用 ip 地址将数据库添加到我的 netbeans java 项目中。
我的问题是,当我按名称指定主机名“localhost”时,我在 netbeans 连接成功建立的新连接向导中遵循了我的正确详细信息。如下图。

但是当我通过指定我自己的计算机的 ip 地址来指定主机时,没有建立本地连接。同样如下图

好吧,我的动机不是将 localhost 的 ip 而是另一台 PC 的 ip 用于通过 Internet 进行远程数据库共享。但我认为问题在于使用ip指定主机的方法。如果我做对了,数据库共享也可以在不同的主机之间工作。
也欢迎任何其他通过 Internet 共享 postgres 数据库的方法。
我是 java 和 netbeans 的新手,因此不胜感激。

【问题讨论】:

  • 我无法阅读这些屏幕截图。您可以编辑它们以便仅显示相关文本吗?虽然看起来和亚像素文本,但它似乎不是“127.0.0.1”,因此请尝试使用您的 IP 地址。
  • @user2338547 好吧,我已经更新了屏幕,IP 地址与 ipconfig 命令中显示的相同,如图所示
  • listen_addresspostgresql.conf 中的值是多少?
  • 您的防火墙是否允许连接到您的 IP 地址?你能ping通那个IP地址吗?这更像是一个网络配置问题,尽管如上所述验证您的 postgres 配置也是必要的。
  • postgresql.conf 中listen_address 的@a_horse_with_no_name 值为*,我将其更改为我系统的IP 地址。会有帮助吗?

标签: java postgresql networking netbeans localhost


【解决方案1】:

您认为localhost 是您的 IP 地址的感觉本身就是错误的!您需要有一个环回地址,它将您的操作定向到它自己,而不是像 ipconfig 命令中显示的 IP 地址那样.

您需要将此127.0.0.1 指定为IP 地址。 127.0.0.1 是最常用的 IPv4 环回地址。

试试这个:- jdbc:postgresql://127.0.0.1:5432/nic_project_db

localhost 表示这台计算机。它是计算机的主机名 软件和用户可以用来访问计算机自己的网络 通过其环回网络接口提供服务。使用环回 接口绕过本地网络接口硬件。 // 取自维基百科。

【讨论】:

  • 感谢帮助,但我的动机是通过 Internet 将数据库连接到另一台主机,如果继续使用标准环回地址,我将如何做到这一点?
  • 好吧,如果你想连接到具有不同 IP 的远程机器上,你只需提供他的 IP 地址和可以将你连接到他的数据库的端口号(这里是 PostgreSQL)。可能,默认就是你说的---5432,但是改成默认吧!
  • 尝试了无数次,但总是得到一些错误,例如“连接被拒绝。检查主机名和端口是否正确,以及邮件管理员是否接受 TCP/IP 连接。”
【解决方案2】:

为了将来参考任何可能有相同问题的人,这里是解决方案:

在 postgresql 数据库文件夹中打开 postgresql.conf 文件。添加以下行:

listen_addresses = '*'

然后打开 pg_hba.conf 文件并添加以下行:

host    all             all             0.0.0.0/0               md5

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-21
    • 1970-01-01
    • 2017-06-26
    • 2015-01-22
    • 2012-02-05
    • 2011-03-23
    • 2015-06-06
    • 1970-01-01
    相关资源
    最近更新 更多