Spring Cloud 使用 Mysql8.0 踩坑解决

问题一:mysql升级到8.0后,原有访问 URL 和 Driver 需要重新改写,不同于mysql5.X。

问题二:Sqlyog  : MySQL连接sqlyog报错2058解决方案

问题一解决方案:

其中:

1、驱动写法改成:com.mysql.cj.jdbc.Driver #MYSQL8 驱动

(MYSQL 5驱动是:com.mysql.jdbc.Driver )

​​​​2、URL写法:jdbc:mysql://localhost:3306/数据库名称?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&autoReconnect=true&useSSL=false

serverTimezone 参数要注意

# 上海时间
serverTimezone=Asia/Shanghai

# 北京时间东八区
serverTimezone=GMT%2B8
 

3、yml文件样例参考:

server:
  port: 8001

spring:
  application:
    name: cloud-payment-service
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: com.mysql.cj.jdbc.Driver  #MYSQL8 驱动
    url:  jdbc:mysql://localhost:3306/db2023?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&autoReconnect=true&useSSL=false
    username: root
    password: 123456

mybatis:
  mapper-locations: classpath:mapper/*.xml
  type-aliases-package: com.elerning.springcloud.entities

问题二解决方案:

1、出现原因:加密规则发生了改变,在8.0之前用的是mysql_native_password,8.0以后用的是caching_sha2_password。
 
2、解决办法:
 
可以更改加密规则。
 
1、首先在CMD登录MySQL中。
 
mysql -u root -p

2、然后切换到数据库MySQL中。
 
use  mysql;
  
3、然后更改加密规则并设置密码:
 
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
 
4、最后进行刷新就可以了。

 flush  privileges;

希望给遇到上述问题的伙伴有所帮助!

(结束)

你可能感兴趣的:(Spring,Cloud,微服务,spring,cloud,mysql8.0)