设为首页 加入收藏

TOP

Java通过mysql-connector-java-8.0.11连接MySQL Server 8.0遇到的几个问题
2018-10-07 10:09:25 】 浏览:56
Tags: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>


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


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇restful接口设计规范总结 下一篇你没听说过的 Go 语言惊人优点

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目