应用 Java 和托管 mysql

Posted

技术标签:

【中文标题】应用 Java 和托管 mysql【英文标题】:App Java and hosting mysql 【发布时间】:2011-01-18 00:03:28 【问题描述】:

我有一个 Java 应用程序,我必须连接到 aruba.it 中的 mysql 数据库主机。如果我建立连接,aruba.it 会拒绝。如何解决?

【问题讨论】:

我的第一个想法是您的连接使用的是root用户,由于安全问题,默认情况下未启用。 @OMG Ponies:那会返回“未通过身份验证”错误或类似的错误,而不是网络错误。至少,我认为他得到了“连接被拒绝”。 【参考方案1】:

首先,我假设您尝试在本地运行此 Java 应用程序,或者至少在与运行 MySQL DB 的机器不同的机器上运行,并且您获得了SQLException: Connection Refused

要解决特定问题,客户端(Java 应用程序运行的地方)和服务器(MySQL 数据库运行的地方)之间完整网络管道中的所有路由器和防火墙都需要配置为允许/转发 数据库使用的端口号。默认为 3306。如果此端口被阻塞,则无法从外部访问数据库。

另一种解决方案是上传 Java 应用程序以 Web 应用程序的形式并通过 HTTP 运行它。您通常会为此使用 JSP/Servlet。

【讨论】:

问题是 aruba 拒绝所有外部连接。所以我认为我可以在数据库主机上使用 jsp 页面,然后从本地应用程序进行查询。到jsp页面。但我不知道路 步骤 1) 编写使用 JDBC 代码执行任务的 DAO 类。步骤 2) 根据请求参数编写使用 DAO 类的 servlet 类。步骤 3) 用一个表单编写 JSP 文件,该表单调用带有特定请求参数的 servlet 类。更多提示/教程在这里:java.sun.com/docs/books/tutorial/jdbc/index.html、balusc.blogspot.com/2008/07/dao-tutorial-data-layer.html、courses.coreservlets.com/Course-Materials/csajsp2.html 那么你能帮我理解如何为服务器制作一个jsp以及jsp和我的应用程序之间的通信吗?? 对于“JSP 和我的应用程序之间的通信”部分,你最好的选择是java.net.URLConnection。但是,我会考虑为此使用 Web 服务(例如 JAX-WS 或 JAX-RS)。但如果你还是太新手,我会先玩 Servlet 和 JSON/XML。【参考方案2】:

除了网络、路由器、防火墙问题之外,原因可能是出于安全原因,默认情况下禁用对 MySQL 数据库服务器的远程访问。大多数数据库托管在同一台服务器或受信任的服务器上。如果您从桌面运行 java 应用程序,则需要配置 MySQL 以便它接受此连接。详情请见this manual。

【讨论】:

那么你能帮我理解如何为服务器制作一个jsp以及jsp和我的应用程序之间的通信吗?? 您有 2 个选择:1) 与您的主机商交谈,向他解释您需要从任何电脑连接。如果您有一个专用数据库(不在您和其他客户之间共享),托管方会很乐意为您提供帮助。 2)在 cmets 到另一个答案中,您有一些关于创建 jsp 的链接

以上是关于应用 Java 和托管 mysql的主要内容,如果未能解决你的问题,请参考以下文章

Heroku 托管烧瓶应用程序与 MySQL 抛出错误

在 Web 托管时将 Web 应用程序与 mysql 数据库连接

托管在 Digital Ocean 中的应用程序的 MySQL JDBC 驱动程序连接字符串应该是啥?

java web 应用程序的最佳托管是啥? [关闭]

从 Microsoft 商店中托管的应用获取订阅和应用内购买信息

云是不是为企业 Java Web 应用程序做好了准备?寻求 Java EE 托管建议 [关闭]