Applet无法连接到mysql服务器

时间:2011-06-02 08:32:10

标签: java mysql applet

我正在开发一个连接到mysql数据库的java applet,applet在本地主机上工作正常但是当我上传它并尝试运行时,我收到一个错误,因为“通信链接失败,最后一个数据包成功发送到服务器是0毫秒前 驱动程序没有从服务器收到任何数据包“ 我尝试了x10hosting和hostable,请帮助我,如果有人知道解决方案......

2 个答案:

答案 0 :(得分:1)

您确定您的MySQL服务器端口真的对公众开放吗?例如,关于可公共路由的IP地址而不是被您的路由器/网络阻止?很可能你的MySQL实例无法从外界访问......

......它应该是怎样的。非常非常非常非常适合让applet直接与您的数据库服务器对话。通常情况下,applet与Web服务器上的中间层进行通信,后者又与数据库服务器进行通信。这有一个安全方面(您的中间层可以防御对您的数据库的各种攻击),并且有一个实用性方面:您可能希望将公共网络中的聊天保持在最低限度,并且您的服务器可以卷起来多个操作的结果,然后发送到客户端。

如果您的MySQL服务器确实可用于外部世界,它的主机是否与加载小程序的主机相同?这是(未签名)applet的安全要求之一,它们只能打开与加载它们的同一主机的网络连接。但如果这是问题,我会期望你得到一个安全异常(除非Connector / J将它隐藏起来)。

答案 1 :(得分:0)

小程序是客户端的。如果你想直接连接到mysql服务器,这意味着每个打开applet的用户应该安装mysql或者拥有远程数据库的访问权限和凭据。即使你的防火墙允许访问,这是一个非常糟糕的主意。如果你这样做,每个人都可以访问你的数据库。

因此,如果要与远程数据库通信,请使用某些协议(http最简单,通过Servlet)将请求发送到服务器并接收基于数据库结果生成的响应。例如,调用http://yoursite.com/addRecord?name=foo&email=bar@baz.com可以告诉服务器端应用程序打开与mysql的(本地)连接并插入记录。