Java通过mysql-connector-java-8.0.11连接MySQL Server 8.0遇到的几个问题

这次新安装了一个MySQL数据库,然后navicat连接数据库一点问题没有。

但是通过Java的jdbc连接却怎么都建立不了连接。

报如下错:

网上找了很久找到了原因:

数据库用的是Mysql8版本,但工程里面mysql驱动包却是5.1.37版本。只需修改驱动包为8.0.11版本即可。

而且驱动的包也改变了,由原来的:/generatorSqlmapCustom/lib/mysql-connector-java-5.1.28-bin.jar

换成了:mysql-connector-java-8.0.11.jar

结构:

换成了:

 

因此Mysql8.0连接JDBC驱动需要注意以下几点:

1,驱动的类换了个名字

Class.forName("com.mysql.cj.jdbc.Driver");

加上useSSL=true或false 

con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test?useSSL=true", "root", "123456");

加上serverTimezone=GMT

con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test?useSSL=true&serverTimezone=GMT", "root", "123456");

 

如果是maven引入,则需要由:

<!-- mysql -->
<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
  <version>5.1.37</version>
</dependency>

改为:

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

在mybatis逆向工程里面配置改成如下:

        <!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
            connectionURL="jdbc:mysql://localhost:3306/taobao" userId="root"
            password="aaaaaa">
        </jdbcConnection>

 

posted @   美好的明天  阅读(72440)  评论(2编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决
点击右上角即可分享
微信分享提示