首页 > 数据库 >MySQL版本的相关问题:com.mysql.cj.jdbc.Driver和com.mysql.jdbc.Driver

MySQL版本的相关问题:com.mysql.cj.jdbc.Driver和com.mysql.jdbc.Driver

时间:2024-07-16 18:09:58浏览次数:11  
标签:jdbc false Driver SSL mysql com

原文链接:https://www.cnblogs.com/daemonFlY/p/9820541.html
1. 在使用mysql时,控制台日志报错如下:
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.

报错原因:
MySQL5用的驱动url是com.mysql.jdbc.Driver,MySQL6以后用的是com.mysql.cj.jdbc.Driver。版本不匹配便会报驱动类已过时的错误。
解决方法:
更改配置文件中的驱动类名字就可以消除驱动类过时的警告了。


2. JDBC连接MySQL6 (com.mysql.cj.jdbc.Driver), 需要指定时区serverTimezone,否则会报如下错误:
复制代码
org.mybatis.spring.MyBatisSystemException:
            nested exception is org.apache.ibatis.exceptions.PersistenceException:
                ### Error querying database.
            Cause: org.springframework.jdbc.CannotGetJdbcConnectionException:
                Could not get JDBC Connection; nested exception is org.apache.commons.dbcp.SQLNestedException:
            Cannot create PoolableConnectionFactory (The server time zone value '�й���׼ʱ��' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.)
复制代码

3.还有一个警告:
复制代码
WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
/**
不推荐不使用服务器身份验证来建立SSL连接。 
如果未明确设置,MySQL 5.5.45+, 5.6.26+ and 5.7.6+版本默认要求建立SSL连接。 
为了符合当前不使用SSL连接的应用程序,verifyServerCertificate属性设置为’false’。 
如果你不需要使用SSL连接,你需要通过设置useSSL=false来显式禁用SSL连接。 
如果你需要用SSL连接,就要为服务器证书验证提供信任库,并设置useSSL=true。
**/
复制代码
             
名词解释:
SSL – Secure Sockets Layer(安全套接层)
所以,使用mysql6的连接字符串建议使用如下:
jdbc.url=jdbc:mysql://localhost:3306/your_database?characterEncoding=UTF-8&serverTimezone=UTC&useSSL=false
//更详细的连接字符创参考:

mysql.url=jdbc:mysql://127.0.0.1:3306/dbname?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useSSL=false&verifyServerCertificate=false&autoReconnct=true&autoReconnectForPools=true&allowMultiQueries=true

         以上配置的写法是写在单独的配置文件properties中,使用xml文件配置的写法略有不同,需要将每一个配置用分号; 隔开,需要注意的是分号;在xml中需要转义。XML文件中的写法:

<property name="url" value="jdbc:mysql://localhost/lujx?serverTimezone=UTC&amp;useSSL=false" />

标签:jdbc,false,Driver,SSL,mysql,com
From: https://www.cnblogs.com/fswhq/p/18057132

相关文章

  • 如何将Navicat MySQL 数据库表分组复用或分享给其他人?
    一般大家做软件项目中,数据库的表是非常多的!几百张表一眼望去密密麻麻!一点看的欲望都没有了!于是乎,NavicatMySQL新增了一项功能:表分组,这样我们只需要将每个业务模块的表放到一个分组中!如图是不是就非常清晰了!应该有不少童鞋都已经这样使用了! 于是乎,新的烦恼来了,这个分组只......
  • MySQL的学习
    关于数据库(DB)数据库是按照数据结构来组织、存储和管理数据的仓库。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。有什么类型关系型数据库所谓关系模型就是“一对一、一对多、多对多”等关系模型,非关系型数据库它们不保证关系数据的A......
  • MySQL学习笔记——索引
    索引0.前言本文是跟着网课学习的时候随手记录的一篇关于MySQL索引的学习笔记1.索引概述1.1.索引介绍索引(index)是帮助MySQL高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据......
  • mysql分区
    --1.分区相关--创建存储过程DELIMITER$$CREATEPROCEDUREens_rb.add_partitions_by_day(intable_namevarchar(30),start_strvarchar(30),end_strvarchar(30))BEGINdeclarestart_ddatedefaultDATE_FORMAT(start_str,'%Y-%m-%d');declare......
  • Java性能优化-书写高质量SQL的建议(如何做Mysql优化)
    场景Mysql中varchar类型数字排序不对踩坑记录:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/139955012为避免开发过程中针对mysql语句的写法再次踩坑,总结开发过程中常用书写高质量sql的一些建议。注:博客:https://blog.csdn.net/badao_liumang_qizhi实现查询......
  • 报错\corelibrary\think\cache\driver\File.php
    这个错误通常发生在尝试使用 unserialize() 函数反序列化一个存储的缓存数据时,但提供的缓存数据无法被正确解析。在 \core\library\think\cache\driver\File.php 文件的第117行左右,框架尝试从文件中读取缓存数据并反序列化它。以下是一些可能的解决方案:检查缓存文件内容:首......
  • mysql索引与锁
    一.MYSQL索引1.1索引介绍1.1.1索引是什么官⽅方介绍索引是帮助MySQL高效获取数据的数据结构。更更通俗的说,数据库索引好比是一本书前面的目录,能加快数据库的查询速度。一般来说索引本身也很大,不可能全部存储在内存中,因此索引往往是存储在磁盘上的文件中的(可能存储在单独的索引文......
  • Mysql8.4参考手册走读(四)
    第19章复制MySQL复制支持从一个MySQL数据库服务器(称为source)复制到一个或多个MySQL数据库服务器(称为副本)。默认情况下,复制是异步的,副本不需要永久连接才能接收来自源的更新。根据配置,您可以复制所有数据库、选定的数据库,甚至是数据库中的选定表。MySQL复制的优点包括:......
  • mysql命令行操作显示表属性的类型与修改
        随着工具的进步,类似于Navicat这些可以让mysql具备可视化的软件越来越多。但是为了安全性,并非每一个都可以使用这些工具进行连接,因此掌握一定的mysql命令基础是必备的,本文主要是讲述一下如何查看表中,各个属性的类型,以及如何对其进行修改操作。一:对表进行查询  ......
  • MySQL的意向锁
    InnoDB支持多粒度锁,它允许行级锁与表级锁共存,而意向锁就是其中的一种表锁1、意向锁的存在是为了协调行锁和表锁的关系,支持多粒度的锁并存2、意向锁是一种不与行锁冲突表级锁,这一点非常重要3、表明某个事务正在某些行持有锁或该事务准备去持有锁意向锁通常有两种类型:意向......