2

我有一个远程 MySQL 数据库,我可以使用 MySQL Workbench(下面的屏幕截图)连接到它,但我最终需要通过 JBDC 连接到它,每次尝试连接时,它都会引发异常。我是新手,所以任何人都可以为我提供一些可能是错误的见解吗?

String host = "testdb.db.10682960.hostedresource.com";
String datab = "testdb";
String url = "jdbc:mysql://" + host + ":3306/" + datab;
Class.forName("com.mysql.jdbc.Driver").newInstance(); 
Connection conn = DriverManager.getConnection(url, datab, "password");

com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:无法创建与数据库服务器的连接。

MySQL 工作台连接

编辑:不确定这是否相关,但我在 Android 上运行它。

4

2 回答 2

0

看起来您缺少用户名。尝试将“?user=testdb”添加到您的网址末尾。

编辑:我没有意识到这是一个 Android 应用程序。从技术上讲,这应该是可能的,但不建议这样做。您的网络连接的可靠性会低得多,并且您会将服务器凭据推送到您的客户端。使用 REST API 从您的 Android 通信到与数据库位于同一数据中心的 Web 服务器是一个更安全的选择。

我没有从 Android 尝试此操作的经验......所以我不知道如果您无法从 Android 连接到网络的端口 3306 会引发什么异常。但是,即使您可以使用它,也请考虑改用 Web 服务。

于 2013-03-29T02:48:27.190 回答
0

根据 jTDS FAQ ( http://jtds.sourceforge.net/faq.html ) JDBC URL 的格式是:

jdbc:jtds:<server_type>://<server>[:<port>][/<database>][;<property>=<value>[;...]]

如果我是你,我会替换“?” 用';' 遵守上述格式。“查询字符串”与“普通”URL 不同。

当然,这假设您使用的是通过上面的链接找到的开源 JDBC 连接器。

于 2014-01-20T21:56:07.617 回答