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

这次新安装了一个MySQL数据库,然后navicat连接数据库一点问题没有。但是通过Java的jdbc连接却怎么都建立不了连接。

报如下错:

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

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

数据库用的是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

结构:

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

换成了:

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

因此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>

SSM框架中,配置数据库连接的问题

MySQL数据库版本是8.0.11.

要用驱动:com.mysql.cj.jdbc.Driver

最主要的是数据库的连接url。

搞了半天才把问题搞明白:

数据库url后面要加上参数

jdbc:mysql://localhost:3306/taobao?characterEncoding=utf-8&amp;serverTimezone=UTC&amp;useSSL=false

另外,在properties文件中的配置和xml里面配置时候需要注意:连接符号:

在xml里面配置:需要使用转义符:&amp;代替&

<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"

destroy-method="close">

<property name="url" value="jdbc:mysql://localhost:3306/taobao?characterEncoding=utf-8&amp;serverTimezone=UTC&amp;useSSL=false" />

<property name="username" value="root" />

<property name="password" value="aaaaaa" />

<property name="driverClassName" value="com.mysql.cj.jdbc.Driver" />

<property name="maxActive" value="10" />

<property name="minIdle" value="5" />

</bean>

而在properties里面,则不能使用转义符,而直接使用:&

jdbc.driver=com.mysql.cj.jdbc.Driver

jdbc.url=jdbc:mysql://localhost:3306/taobao?characterEncoding=utf-8&serverTimezone=UTC&useSSL=false

jdbc.username=root

jdbc.password=aaaaaa

Linux公社的RSS地址https://www.linuxidc.com/rssFeed.aspx

本文永久更新链接地址: https://www.linuxidc.com/Linux/2018-09/154469.htm

原文 

https://www.linuxidc.com/Linux/2018-09/154469.htm

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » Java通过mysql-connector-java-8.0.11连接MySQL Server 8.0遇到的几个问题

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址