MySQL8.0数据库连接驱动问题

摘要:
UseUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8spring。数据源。username=rootspring。数据源。密码=789456123弹簧。数据源。驱动程序类名=com。mysql。cj。jdbc。Driverurl需要添加时区设置:&serverTimezone=GMT%2B8也可以设置为:serverTimezone=UTC serverTimezone=Shanghai如果mysql connector java使用6.0或更高版本,如果mysql连接器java使用6.0以上版本的连接器java如果未显式设置驱动程序,mysql 5.5.45+、5.6.26+和5.7.6+版本默认需要SSL连接。为了符合当前不使用SSL连接的应用程序,verifyServerCertificate属性设置为“false”。如果不需要使用SSL连接,则需要通过设置useSSL=false显式禁用SSL连接。如果需要使用SSL连接,则需要为服务器证书验证提供信任基础,并设置useSSL=true SSL–SecureSocketsLayer

在新电脑上安装了MySQL8.0,打开原来的一个项目去连接时,报如下错误

com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server.

Caused by: java.lang.NullPointerException
    at com.mysql.jdbc.ConnectionImpl.getServerCharset(ConnectionImpl.java:3005)
    at com.mysql.jdbc.MysqlIO.sendConnectionAttributes(MysqlIO.java:1916)
    at com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1845)

经排查,是因为JDBC驱动版本问题导致的,项目原来使用的MySQL版本是5.X,现在使用MySQL8.0,驱动需要相应的跟新,如下:

<dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <!--<scope>runtime</scope>-->
            <version>8.0.11</version>
</dependency>

另外,application.properties文件中的数据库配置项也需要相应变化:

spring.datasource.url=jdbc:mysql://localhost:3306/toutiao?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8
spring.datasource.username=root
spring.datasource.password=789456123
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

url 需要添加时区设置:

&serverTimezone=GMT%2B8   (GMT%2B8代表东八区)
也可设置为:serverTimezone=UTC serverTimezone=Shanghai(会比中国时间早8个小时,如果在中国,可以选择Asia/Shanghai或者Asia/Hongkong)

如果mysql-connector-java用的6.0以上的

如果MySQL-connector-java用的6.0以上的,则driver要使用:

com.mysql.cj.jdbc.Driver

如果未明确设置,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(安全套接层)

免责声明:文章转载自《MySQL8.0数据库连接驱动问题》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Spring Security OAuth2.0分布式认证和授权方案spring boot 项目中hanlp的配置(可增加自定义词典)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

MySQL 解析 json 数组(mysql在5.7开始支持json解析)

  1.函数 JSON_EXTRACT 表数据格式:  查询结果:  sql 语句: -- ---------------------------- -- Table structure for jsonarray_test -- ---------------------------- DROP TABLE IF EXISTS `jsonarray_...

安装mariadb

 安装mariadb有两个源,一个是阿里云的yum源,可能版本较低,软件包很小,功能很少 二个是mariadb官方的yum源,配置方式 在/etc/yum.repos.d目录下,建立一个repo文件就是yum仓库 #创建一个mariadb.repo文件,写入以下内容 [mariadb] name = MariaDB baseurl = http://yum...

Mongodb到mysql数据库的数据迁移(Java,Windows)

运行环境为windows 测试过260万的数据表,迁移大概要10分钟左右,当然肯定和网络,字段大小什么的有关系。 遇到的坑和注意点都用紫色标记了 PS:第一次写这么长的东西 一、Mongodb导出命令mongoexport 本地安装Mongodb,在安装目录的/bin下按住shift并右键“在此处打开命令窗口”,可执行以下语句进行导出。 mongoexpo...

Shell 脚本之 MySQL 一键安装及基本配置(几分钟搞定)

准备工作 MySQL 该版本下载地址: https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz mysql_install-v1.0.sh脚本如下: #!/bin/bash # MySQL 安装日志信息 log=/var/...

sysbench对自装MySQL数据库进行基准测试

一、 安装sysbench wget https://packagecloud.io/install/repositories/akopytov/sysbench/script.rpm.sh chmod +x script.rpm.sh ./script.rpm.sh yum install -y sysbench 二、准备测试表 sysbench //...

centos7之zabbix监控mysql(mariadb)数据库

一、Zabbix3.2.6使用自带模板监控MySQL  添加zabbix_agent客户端方法:http://www.cnblogs.com/lei0213/p/8858269.html mysql服务器端配置 1、需知:   1、如果要监控mysql或者mariadb数据库的话,首先你得保证这台服务器的正常运行,所以首先需要监控这台linux服务器,如果...