Spring Cloud 使用 Mysql8.0 踩坑解决

发布时间:2023年12月17日

问题一: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;

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

(结束)

文章来源:https://blog.csdn.net/LUCKWXF/article/details/135043633
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。