2015-07-13 82 views
0

我試圖使用下面的程序連接到MySQL數據庫。根據我如何提供連接字符串,我得到以下錯誤。從Selenium Java測試腳本連接到MySQL數據庫失敗

僅通過':'與'mysql'分隔的IP地址: conn = DriverManager.getConnection(「jdbc:mysql:[有效IP地址]/localhost:3306/[有效數據庫名稱]」, ]「,」[有效密碼]「);

SQLSTATE:08001 VendorError:0 java.sql.SQLException中:找到JDBC沒有合適的驅動程序:MySQL的:[有效的IP地址] /本地主機:3306/[有效的數據庫名稱]

IP地址從分離'mysql'by':http://': conn = DriverManager.getConnection(「jdbc:mysql:http://[valid ip address]/localhost:3306/[有效數據庫名稱]」,「[有效用戶名]」,「[有效密碼]」);

SQLSTATE:08001 VendorError:0 java.sql.SQLException中:找到JDBC沒有合適的驅動程序:MySQL的:http://[valid IP地址] /本地主機:3306/[有效的數據庫名稱]

IP地址從'分離mysql'by'://': conn = DriverManager.getConnection(「jdbc:mysql:// [有效IP地址]/localhost:3306/[有效數據庫名稱]」,「[有效用戶名]」,「[有效密碼]」);

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:通信鏈路故障 成功發送到服務器的最後一個數據包是0毫秒前。驅動程序尚未收到來自服務器的任何數據包。 SQLSTATE:08S01 VendorError:0

在後者的情況堆棧跟蹤提供「產生的原因:java.net.ConnectException:連接被拒絕:」連接

在所有情況下棧跟蹤還指示的代碼行設置變量'conn'會拋出異常。

請注意,在程序列表中的方括號內的文本代表混淆代碼,並且括號實際上不在程序中。

我的問題是,我是否確實安裝了所需的驅動程序,或者連接字符串有問題嗎?有沒有我還沒有想到的其他問題?

代碼如下

package [package name]; 

import org.junit.Test; 
import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.ResultSet; 
import java.sql.SQLException; 
import java.sql.Statement; 

public class SQLConnectionTest 
{ 

    @Test 
    public void startWebDriver() 
    { 
     try 
     { 
      Class.forName("com.mysql.jdbc.Driver").newInstance(); 
     } 
     catch (Exception ex) 
     { 
      System.out.println(ex.getMessage()); 
     } 

     Statement stmt = null; 
     Connection conn = null; 
     ResultSet rs = null; 

     try 
     { 
      conn = DriverManager.getConnection("jdbc:mysql://[valid ip address]/localhost:3306/[valid database name]","[valid username]","[valid password]"); 

      // Do something with the Connection 

     } 
     catch (SQLException ex) 
     { 
      // handle any errors 
      System.out.println("SQLState: " + ex.getSQLState()); 
      System.out.println("VendorError: " + ex.getErrorCode()); 
      ex.printStackTrace(); 
     } 

     try 
     { 
      conn.close(); 
     } 
     catch (SQLException e) 
     { 
      System.out.println(e.getMessage()); 
     } 
    } 
} 

對環境的一些信息:

IDE:Eclipse的月神服務版本2(4.4.2),建立ID:20150219-0600

JRE系統庫:jre1.8.0_45

MySQLConnector庫:mysql-connector-java-5.1.36.jar(出現在Referenced Librar Package Explorer中的IES部分)

我還安裝使用mysql-connector-java的GPL-5.1.36,JDK-8u45-Windows的x64和硒的Java-2.45.0

我會很高興根據需要提供更多信息。

回答

0

連接過程對我來說似乎沒問題,但連接URL中有些奇怪的事情。你有

conn = DriverManager.getConnection("jdbc:mysql://[valid ip address]/localhost:3306/[valid database name]","[valid username]","[valid password]"); 

它有IP地址和localhost:端口。這不是一個有效的URL,喲必須刪除或者本地主機或IP地址:

conn = DriverManager.getConnection("jdbc:mysql://[valid ip address]:3306/[valid database name]","[valid username]","[valid password]"); 

conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/[valid database name]","[valid username]","[valid password]"); 

這應該做的伎倆。

+0

我已成功嘗試連接到公共站點db4free.net上的數據庫的第一個選項。正如它發生的那樣,我在受測站點上嘗試了它,發現連接字符串問題掩蓋了我被安全設置阻止從站點被阻止的事實。第二個問題現已解決,因此請考慮您的回覆是我的問題的成功解決方案。非常感謝 –