我正在开发一个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'连接会产生我上面发布的错误。
答案 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本身。 玩得开心。