我使用Java创建了一个应用程序,它使用PostgreSQL数据库来存储数据。
然而,在我完成对应用程序的抛光并将其编译成罐子和罐子之后将它上传到我朋友的测试环境,它不再起作用了!
我该如何解决这个问题?
P.S。:对不起我的英语不好
答案 0 :(得分:1)
如果我正确理解您的问题,您已经开发了一个应用程序,并希望与多个用户共享该应用程序。您的应用程序连接到PostgreSQL数据库,但由于您的用户没有数据库,因此在执行应用程序时会出现错误。
要解决上述问题,您需要确定每个用户是否需要自己的数据库 - 在这种情况下,工作PostgreSQL安装是使用您的应用程序的先决条件。
如果是这种情况,我建议编写一些SQL脚本来设置数据库,并使用README文件向用户提供这些脚本,说明如何执行脚本而不是将安装程序捆绑到应用程序中。
或
如果您的用户共享数据库,请通过Internet /网络进行安装,或使用Heroku,Amazon AWS RDS服务或EnterpriseDB的云产品(基于Amazon AWS构建)等服务。
如果您可以提供有关您正在使用哪个选项的更多详细信息,我相信您会获得更具体的帮助。如果没有,希望上面的通用建议有帮助。
答案 1 :(得分:0)
如何连接到未向互联网开放的Postgres数据库:
确保您的postres db侦听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
希望这有帮助。