欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Spring boot 连接本地数据库MySQL8

程序员文章站 2022-03-26 09:48:13
Spring root 连不上 MySQL8 的问题1.application.properties配置上的差异1.驱动的区别mysql5用的驱动url是com.mysql.jdbc.Drivermysql6以后用的是com.mysql.cj.jdbc.Driver依赖的connnect 库版本也要高些,不然他不知道有这个驱动 ...

Spring root 连不上 MySQL8 的问题

1.application.properties配置上的差异

1.驱动的区别

mysql5用的驱动url是com.mysql.jdbc.Driver
mysql6以后用的是com.mysql.cj.jdbc.Driver

依赖的connnect 库版本也要高些,不然他不知道有这个驱动

  <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.11</version>
            <scope>runtime</scope>
        </dependency>

所以配置需要写

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

2.调用windows本地MySQL8 数据库

通常MySql数据库,是使用方言是SQLServerDialect

spring.jpa.database-platform=org.hibernate.dialect.MySQLDialect

这么设置

但是windows MySql server 不是

需要这么设置

spring.jpa.database-platform=org.hibernate.dialect.SQLServerDialect

3.root用户没有数据库访问权限

上面设置好了

spring.datasource.url=jdbc:mysql://10.10.202.6:3306/test_db?characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC&zeroDateTimeBehavior=round&allowPublicKeyRetrieval=true
spring.datasource.username=root
spring.datasource.password=123456

帐号,路由 密码后,还是报错

Exception in thread "main" org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLException: Access denied for user 'root'@'SC-201809201448' (using password: YES)

因为root 没有连接权限。

在MySql8之前的解决办法是使用命令

GRANT ALL PRIVILEGES ON *.* TO 'root'@'127.0.0.1' IDENTIFIED BY '123456';

但是MySql8不能这么干,,mysql8.0以前的版本可以使用grant在授权的时候隐式的创建用户,8.0以后已经不支持,所以必须先创建用户,然后再授权

创建的命令

CREATE USER 'root'@'10.10.202.6' IDENTIFIED BY '123456';

然后再输入下面的授权命令

GRANT ALL PRIVILEGES ON *.* TO 'root'@'10.10.202.6';

就可以访问数据库了

本文地址:https://blog.csdn.net/lx6101989/article/details/108864183