无法连接到PostgreSQL数据库作为' localhost'

时间:2014-12-02 09:36:02

标签: java android eclipse postgresql localhost

我正在开发一个Android应用程序,我正在使用PostGIS与PostGIS捆绑在一起。我想使用本地数据库,但通过'localhost'连接不起作用,我已尝试替代使用'127.0.0.1'但它不起作用,我收到以下错误:

org.postgresql.util.PSQLException: Connection refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.

使用我的网络的ipv4地址有效,但我无法通过localhost连接。我该如何解决这个问题? 我的pg_hba.conf看起来像是:

...
# Put your actual configuration here
# ----------------------------------
#
# If you want to allow non-local connections, you need to add more
# "host" records.  In that case you will also need to make PostgreSQL
# listen on a non-local interface via the listen_addresses
# configuration parameter, or via the -i or -h command line switches.



# TYPE  DATABASE        USER            ADDRESS                 METHOD

# IPv4 local connections:
host    all             all             127.0.0.1/32            trust
host    all             all             192.168.1.1/24          trust
host    all             all             0.0.0.0/0               trust
# IPv6 local connections:
host    all             all             ::1/128                 trust

# Allow replication connections from localhost, by a user with the
# replication privilege.
#host    replication     postgres        127.0.0.1/32            trust
#host    replication     postgres        ::1/128                 trust

和我的postgresql.conf看起来像:

# - Connection Settings -

listen_addresses = '*'      # what IP address(es) to listen on;
                    # comma-separated list of addresses;
                    # defaults to 'localhost'; use '*' for all
                    # (change requires restart)
port = 5123         # (change requires restart)
max_connections = 100           # (change requires restart)

我在Eclipse中的代码看起来像

private String DB_URL = "jdbc:postgresql://" + Server.getDbserver() + ":" + Server.getDbport() + "/postgis";

我的Server类中的变量看起来像。

private static String dbserver = "localhost";
private static int dbport = 5123;

总结一下,通过我的网络连接ipv4(例如192.168.1.199)可以正常工作,但通过'localhost'或'127.0.0.1'连接会产生我上面发布的错误。

2 个答案:

答案 0 :(得分:1)

为什么使用192.168.1.1/ 24 并信任?尝试它可能是这样的:

host all all 192.168.1.1/32 md5

然后使用用户名/密码实现连接。

答案 1 :(得分:0)

嗯,您需要在Android设备和计算机之间建立连接,但不幸的是,USB电缆不能这样做。 但是,如果您确实想要离线管理您的应用程序,则必须使您的PC或Android设备成为热点。我不会建议你让你的平板电脑成为一个热点,但让计算机成为一个热点很容易,你可以使用Connectify和瞧,你的笔记本电脑连接到你的计算机相同的局域网,你会得到提供给你的电脑ipv4通过Connectify本身。 玩得开心。