关于“java.sql.SQLNonTransientConnectionException: Could not create connection to database server.”报错处理

文章描述了一个JSP页面通过JDBC连接MySQL数据库的过程,遇到因时区设置错误导致的SQLNonTransientConnectionException。解决方法是将serverTimezone设置为UTC并允许公钥检索。

这是一个简单的JSP页面,该页面中的java程序片代码负责加载JDBC-驱动程序,并连接到数据库bookDatabase,查询bookList表中的全部记录(先前已经建立好数据库bookDatabase)。

在Navicat使用GUI图形化用户界面查看数据库bookDatabase

代码如下:

<%@ page contentType="text/html" %>
<%@ page pageEncoding = "utf-8" %>
<%@ page import="java.sql.*" %>
<style>
   #tom{
      font-family:宋体;font-size:18;color:blue 
   }
</style>
<HTML><body bgcolor=#EEDDFF>
 <% Connection con=null;
    Statement sql; 
    ResultSet rs;
    try{  //加载JDBC-MySQL8.2.0连接器:
       Class.forName("com.mysql.cj.jdbc.Driver"); 
    }
    catch(Exception e){
       out.print("<h1>"+e);
    }
    String url = "jdbc:mysql://localhost:3306/bookDatabase?"+
    "useSSL=false&serverTimezone=CST&characterEncoding=utf-8";
    String user ="root";
    String p
`java.sql.SQLNonTransientConnectionException: Could not create connection to database server` 错误通常表示JSP在尝试连接数据库服务器时遇到了问题。以下是一些可能的解决办法: #### 检查数据库服务是否启动 确保数据库服务正在运行。以MySQL为例,在Windows系统中可以通过服务管理器启动MySQL服务;在Linux系统中,可以使用以下命令启动: ```bash sudo systemctl start mysql ``` #### 检查数据库连接URL 确认JSP代码中的数据库连接URL是否正确。例如,在使用MySQL时,正确的URL格式如下: ```jsp <%@ page import="java.sql.*" %> <% try { Class.forName("com.mysql.cj.jdbc.Driver"); Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/your_database?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true", "username", "password"); // 后续操作 conn.close(); } catch (Exception e) { e.printStackTrace(); } %> ``` 要确保 `jdbc:mysql://localhost:3306/your_database` 中的主机名、端口号和数据库名正确,同时检查参数设置是否符合要求[^3]。 #### 检查数据库驱动 确保已经正确加载了数据库驱动。对于MySQL,需要加载 `com.mysql.cj.jdbc.Driver` 驱动类。可以在JSP代码中使用 `Class.forName()` 方法加载驱动: ```java Class.forName("com.mysql.cj.jdbc.Driver"); ``` #### 检查数据库用户名和密码 确认连接数据库使用的用户名和密码是否正确。如果用户名或密码错误,将无法建立数据库连接。 #### 检查防火墙设置 确保防火墙没有阻止JSP应用程序与数据库服务器之间的通信。可以暂时关闭防火墙进行测试,或者配置防火墙允许数据库端口(如MySQL的3306端口)的通信。 #### 检查数据库连接池配置 如果使用了数据库连接池,检查连接池的配置是否正确。确保连接池的最大连接数、最小连接数等参数设置合理。 #### 检查数据库版本兼容性 确保使用的数据库驱动与数据库版本兼容。不同版本的数据库可能需要不同版本的驱动程序。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值