找不到合适的mysql驱动程序(远程调试)

ser*_*gio 1 java mysql jdbc

嗨,我发现了一个看似常见的问题,我无法与mysql数据库进行交互.找不到合适的驱动程序.我在同一个问题上跟随了大多数线程,但是我无法复制他们的解决方案,因此我发布了自己的具体问题.

(主要是这个帖子:我无法为MySQL加载JDBC驱动程序)

我的代码:

public DBManager(){
    try {
        //Class.forName("com.mysql.jdbc.Driver");
        DriverManager.registerDriver(new com.mysql.jdbc.Driver()); 

        con=DriverManager.getConnection("jdbc:mysql:3306//localhost/test","root","root");
        //con=DriverManager.getConnection(c);
        if(!con.isClosed()) {
            con.close();
        }
    }
    catch (SQLException e) {
        e.printStackTrace();
    }
Run Code Online (Sandbox Code Playgroud)

现在,我读到新的驱动程序,你不需要Class.forName()或registerDriver(); 我试过两个,但我仍然无法让它工作.

事情是在Windows机器上开发,使用eclipse Indigo和Connector/J 5.1.17

和使用相同连接器的远程linux上部署(和调试).

我正在启动我的调试会话

java -Xdebug -Xrunjdwp:transport = dt_socket,address = 8998,server = y -classpath /home/dev/mysql-connector-java-5.1.17-bin.jar -jar devserver.jar

我得到了那个例外.有帮助吗?

我来自一个沉重的c#开发环境,所以如果我必须干涉类路径等,请尝试逐步进行,因为我不太熟悉它.

Bal*_*usC 5

SQLException:没有合适的驱动程序

只要DriverManager#getConnection()找不到给定连接URL的合适驱动程序,您就会收到此异常.当为任何已加载的驱动程序Driver#acceptsURL()返回时,会发生这种情况false.

实际上,您的连接URL是错误的:

jdbc:mysql:3306//localhost/test

应该是:

jdbc:mysql://localhost:3306/test

另请参阅MySQL JDBC手册.

MySQL Connector/J的JDBC URL格式如下,方括号([,])中的项是可选的:

jdbc:mysql://[host][,failoverhost...][:port]/[database] »
[?propertyName1][=propertyValue1][&propertyName2][=propertyValue2]...
Run Code Online (Sandbox Code Playgroud)

如果未指定主机名,则默认为127.0.0.1.如果未指定端口,则默认为3306,即MySQL服务器的默认端口号.

jdbc:mysql://[host:port],[host:port].../[database] »
[?propertyName1][=propertyValue1][&propertyName2][=propertyValue2]...
Run Code Online (Sandbox Code Playgroud)

如果未指定数据库,则将建立连接而不使用默认数据库.