本文整理自网络,侵删。
目录
- 前言
- 一、代码配置的数据库名称或者密码与本地数据库不一致
- 1.1、错误产生描述
- 1.2、解决方式
- 二、导入的非本地项目文件与本地的数据库版本不匹配
- 2.1、错误产生描述
- 2.2、解决方式
- 三、MySQL 高版本配置加载驱动类包出错问题(以 MySQL 8.0 为例)
- 3.1、错误产生描述
- 3.2、解决方式
- 3.3、MySQL 不同版本的驱动类如何查看
- 四、数据库连接字符串高版本配置出错(时区问题)
- 4.1、错误产生描述
- 4.2、解决方式
- 五、为什么数据库中写入数据相差 8 个小时?
- 5.1、错误产生描述
- 5.2、解决方式
- 六、SSL 连接问题
- 6.1、错误产生描述
- 总结
前言
报错如下:
Could not open JDBC Connection for transaction; nested exception is java.sql.SQLException: Connections could not be acquired from the underlying database!
对于此类错误,直接看释义,一句话:JDBC 驱动抛出异常,连不上数据库。
一、代码配置的数据库名称或者密码与本地数据库不一致
1.1、错误产生描述
第一种,也是最为常见的一种错误:代码配置的数据库名称或者密码与本地数据库不一致,抛出异常。
如上图所示,在配置文件中,前面的 name 属性是默认的,无需改变,对于用户名,一般为 root,可以通过数据库管理软件直接查看本地配置的情况,数据库的密码就是你自己设置的了。
1.2、解决方式
修改配置文件对应的名称和密码。
二、导入的非本地项目文件与本地的数据库版本不匹配
2.1、错误产生描述
第二种常见的错误:使用 IDE(以 Eclipse 为例)导入的非本地项目文件与本地的数据库版本不匹配。
举个例子:你导入你 eclipse 中的项目里面依赖的 jar 包是 8.0 的版本,而你本地安装的是 5.0 的 MySQL 数据库,自然报错。
2.2、解决方式
在你导入的项目中找到 Referenced Libraries,右击鼠标→Build Path→Configure Build Path…Remove 掉项目里面依赖的 8.0 的 MySQL 驱动,Add 进你本地安装的 5.0 的版本即可。
三、MySQL 高版本配置加载驱动类包出错问题(以 MySQL 8.0 为例)
这个错误是由于 MySQL 版本更新之后,驱动包发生改变导致的,新的驱动程序类是 com.mysql.cj.jdbc.Driver。
3.1、错误产生描述
报错如下:
Loading class com.mysql.jdbc.Driver'. This is deprecated. The new driver class is com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.
错误说明:不建议使用驱动类'com.mysql.jdbc.Driver'。新的驱动程序类是'com.mysql.cj.jdbc.Driver',驱动程序是通过 SPI 自动注册的,通常是不需要手动加载驱动类。
3.2、解决方式
将 MySQL 数据库 5.0 使用的驱动类com.mysql.jdbc.Driver改为com.mysql.cj.jdbc.Driver,驱动程序是通过 SPI 自动注册的,通常是不需要手动加载驱动类。修改之后的配置文件如下图所示:
<!-- 加载数据库驱动 --> <property name="driverClass" value="com.mysql.cj.jdbc.Driver"></property>
3.3、MySQL 不同版本的驱动类如何查看
对于 MySQL 的驱动类,我们对每个版本进行查看时,点开驱动的 jar 包可以直接查看驱动是位于哪里,例如 8.0 版本的就是 com.mysql.cj.jdbc.Driver,如下图所示:
相关阅读 >>
centos编译安装mysql 5.6及安装多个mysql实例详解
更多相关阅读请进入《mysql》频道 >>
数据库系统概念 第6版
机械工业出版社
本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。
转载请注明出处:木庄网络博客 » 分析MySQL抛出异常的几种常见解决方式
相关推荐
评论
管理员已关闭评论功能...