我使用Java创建了一个应用程序,该应用程序使用PostgreSQL数据库存储数据。
然而,在我完成了应用程序的抛光并将其编译成一个罐子之后;上传到我朋友的测试环境,它不再工作了!
我该如何解决这个问题?
第页。S.:对不起,我的英语不好
如果我正确理解您的问题,那么您已经开发了一个应用程序,并希望与多个用户共享该应用程序。您的应用程序连接到PostgreSQL数据库,但由于用户没有数据库,他们在执行应用程序时会出错。
要解决上述问题,您需要确定每个用户是否需要自己的数据库——在这种情况下,使用PostgreSQL安装是使用应用程序的先决条件。
如果是这种情况,我建议编写一些SQL脚本来设置数据库,并向用户提供一个自述文件,解释如何执行脚本,而不是将安装程序捆绑到应用程序中。
或
如果您的用户共享数据库,请通过互联网/网络或使用Heroku、亚马逊AWS RDS服务或EnterpriseDB的云服务(基于亚马逊AWS)等服务进行安装。
如果你能提供更多关于你使用哪个选项的细节,我相信你会得到更具体的帮助。如果没有,希望上面的一般建议会有所帮助。
如何连接到未对互联网开放的Postgres数据库:
确保您的postresdb侦听localhost。它可能已经做到了,但仍然:
查看内部
/etc/postgresql/9.1/main/postgresql.conf
对于线路
listen_addresses='localhost'
你想要的下一个文件是
/etc/postgresql/9.1/main/pg_hba.conf
寻找线路
local all all trust
这允许访问localhost上所有数据库上的所有用户角色。
现在,你需要打开一条从应用程序所在地到数据库服务器的隧道。假设您的数据库监听默认端口5432,则执行
ssh -v -L 5432:127.0.0.1:5432 your_user@your_db_server
如果运行Windows,请在cygwin中执行此操作,或在Putty中执行相应操作。
现在,您的应用程序可以连接到localhost:5432上的数据库,即
jdbc:postgresql://localhost:5432/your_db
希望这能有所帮助。