从Selenium Java测试脚本连接到MySQL数据库失败

问题描述:

我试图使用下面的程序连接到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

我会很高兴根据需要提供更多信息。

连接过程对我来说似乎没问题,但连接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上的数据库的第一个选项。正如它发生的那样,我在受测站点上尝试了它,发现连接字符串问题掩盖了我被安全设置阻止从站点被阻止的事实。第二个问题现已解决,因此请考虑您的回复是我的问题的成功解决方案。非常感谢 –