在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
前言报错如下:
对于此类错误,直接看释义,一句话: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、错误产生描述报错如下:
错误说明:不建议使用驱动类'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,如下图所示: 四、数据库连接字符串高版本配置出错(时区问题)注意:MySQL 6.0 版本之后都需要配置时区。 4.1、错误产生描述报错如下:
4.2、解决方式我们可以利用时区支持,通过配置服务器或 JDBC 驱动程序(通过 serverTimezone 配置属性)以使用更具体的时区值。 配置文件如下: <!-- 数据库连接字符串 --> <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/demo?serverTimezone=GMT%2B8&characterEncoding=utf-8"></property> 五、为什么数据库中写入数据相差 8 个小时?5.1、错误产生描述Java 数据库连接使用 UTC 时区(世界标准时间),即 serverTimezone=UTC,而北京时间比 UTC 时间早8小时,即 UTC+08:00,如果我们直接使用 serverTimezone=UTC,写入数据库中的数据会提前 8 个小时。如果按照如下配置就会在数据库中写入数据相差 8 个小时: <!-- 数据库连接字符串 --> <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/demo?serverTimezone=UTC&characterEncoding=utf-8"></property> 5.2、解决方式我们可以修改设置 serverTimezone 为北京时间 GMT%2B8、上海时间 Asia/Shanghai 或者香港时间 Hongkong。 配置文件如下即可: <!-- 数据库连接字符串 --> <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/demo?serverTimezone=GMT%2B8&characterEncoding=utf-8"></property> 另外在 MySQL 中的 my.ini 配置文件也可以修改,此文章仅用于解决相应问题,故不多做详细描述。 六、SSL 连接问题6.1、错误产生描述报错如下:
错误说明:不建议在没有服务器身份验证的情况下建立 SSL 连接。根据 MySQL 5.5.45+,5.6.26+ 和 5.7.6+ 的 SSL 连接要求,如果未设置连接方式,则默认情况下必须建立 SSL 连接。对于不使用 SSL 的现有应用程序,服务器的验证证书属性设置为“false”。您需要通过设置useSSL = false来显式禁用 SSL,或者设置useSSL = true并提供服务器的验证证书。 6.2、解决方式
配置文件如下即可: <!-- 数据库连接字符串 --> <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/demo?useSSL=false&serverTimezone=GMT%2B8&characterEncoding=utf-8"></property> 总结通过对于 MySQL 抛出异常的几种常见解决方式的总结,加深对于 MySQL 底层的了解。只要是干开发,错误是不断地,要善于总结。同时,要充分掌握开发的底层原理,不同的版本迭代作为开发者要及时了解,不然永远跟不上技术的发展。 以上就是分析MySQL抛出异常的几种常见解决方式的详细内容,更多关于MySQL异常的解决方式的资料请关注极客世界其它相关文章! |
请发表评论