【发布时间】:2017-06-12 23:49:09
【问题描述】:
我正在尝试通过 java 代码连接到数据库。
这是我的代码的 sn-p:
import java.sql.*;
public class FirstExample {
// JDBC driver name and database URL
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://hostname:port/ourDatabasename;integratedSecurity=true;";
// Database credentials
static final String USER = "myUsername";
static final String PASS = "myPass";
public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
try{
//STEP 2: Register JDBC driver
Class.forName("com.mysql.jdbc.Driver");
//STEP 3: Open a connection
System.out.println("Connecting to database...");
conn = DriverManager.getConnection(DB_URL, USER, PASS);
.........................
最后一行conn = DriverManager.getConnection(DB_URL, USER, PASS); 程序抛出异常:
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:通信链路故障 最后一个成功发送到服务器的数据包是 0 毫秒前。驱动没有收到服务器发来的任何数据包。
我有一个 ping 这个主机名。 Telnet 到主机名和端口成功。我可以通过 Microsoft SQL Server Management Studio 使用 Windows Credentials:myUsername/myPass 登录到这个“ourDatabasename”,但无法通过这个 java 代码进行连接。我有:'mysql-connector-java-5.1.40-bin' 并将其添加到我的项目中。
我错过了什么?您对如何解决此问题有任何想法吗?
【问题讨论】:
-
您确定没有混淆
MySQL和MSSQL? -
如果您可以使用 Microsoft SQL Server Management Studio 连接到您的数据库,那么您没有使用 MySQL。您需要使用 Microsoft SQL Server JDBC 驱动程序和正确的连接字符串。
-
你用什么端口用 Telnet 测试它?
-
如果您使用的是 mssql 服务器,请将 JDBC_DRIVER 更改为
com.microsoft.sqlserver.jdbc.SQLServerDriver并将 DB_URL 更改为jdbc:sqlserver://server:port;DatabaseName=dbname