java.sql.SQLException:未找到适合jdbc的驱动程序:mysql://localhost/mydb?autoReconnectForPools=true&useUnicode=true&;characterEncoding=utf-8

java.sql.SQLException:未找到适合jdbc的驱动程序:mysql://localhost/mydb?autoReconnectForPools=true&useUnicode=true&;characterEncoding=utf-8,java,mysql,tomcat,jdbc,Java,Mysql,Tomcat,Jdbc,我在Tomcat7上运行了一个web应用程序。我的Web应用程序使用连接器mysql连接数据库。它连接到mysql并查询ok。但是,当我运行它3-4个小时时,get connection出现错误,我在tomcat中得到的日志是 “java.sql.SQLException:找不到适合的驱动程序 jdbc:mysql://localhost/mydb?autoReconnectForPools=true&useUnicode=true&characterEncoding=utf-8 位于java.

我在Tomcat7上运行了一个web应用程序。我的Web应用程序使用连接器mysql连接数据库。它连接到mysql并查询ok。但是,当我运行它3-4个小时时,get connection出现错误,我在tomcat中得到的日志是

“java.sql.SQLException:找不到适合的驱动程序 jdbc:mysql://localhost/mydb?autoReconnectForPools=true&useUnicode=true&characterEncoding=utf-8 位于java.sql.DriverManager.getConnection(DriverManager.java:596) java.sql.DriverManager.getConnection(DriverManager.java:215)”


您缺少MySQL驱动程序的jar。如果它不在/WEB-INF/lib下,则将其放入/lib/ext

这可能是一种解决方法,建议在控制器中手动注册驱动程序:

@PostConstruct
public void init() {
    try {
        Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
    } catch (ClassNotFoundException ex) {
        throw new RuntimeException(ex);
    }
}

do
Class.forName(“com.mysql.jdbc.Driver”)在开始连接之前,您的类路径中是否有jar?当然,我使用了此注释。我在tomcat库中添加了插件。请注意,它在发生异常后的很长一段时间内第一次正常运行。我想可能是tomcat泄漏内存和限制注册mysql驱动程序。不要将其放入
lib\ext
;它已弃用,将在未来的Java版本中删除。而是把它放到tomcat lib文件夹中。我有一个插件tomcat lib。请注意,它在发生异常后的很长一段时间内第一次正常运行。我想可能是tomcat泄漏内存和限制注册mysql驱动程序。你能解释清楚吗?您将jar放在lib文件夹中,启动应用程序,它能够获得到数据库的连接,直到出现异常为止?与你的问题相同还是不同?是的。运行一段时间后会出现异常。