关于seata无法连接MySQL8数据库解决方案

关于seata无法连接MySQL8数据库解决方案

前言

  • 本人采用window部署seata底层默认采用MySQL5.7的数据库,然后我下载的seata版本是1.5.1 配置采用nacos(2.0.3)的共享配置中心读取seata配置。
  • 将驱动类修改为8的驱动类的话可以启动但是会报错,找不到数据源
  • 使用5的驱动类会发现seata服务直接无法启动

解决方案

更换seata版本 提高到1.6.0
seata下载地址:https://github.com/seata/seata/releases
在这里插入图片描述

关于seata无法连接MySQL8数据库解决方案_第1张图片

seata中的yml配置
nacos2.2.2版本没有登录功能需要注释掉nacos用户名密码


server:
  port: 7091

spring:
  application:
    name: seata-tc-server

logging:
  config: classpath:logback-spring.xml
  file:
    path: ${user.home}/logs/seata
  extend:
    logstash-appender:
      destination: 127.0.0.1:4560
    kafka-appender:
      bootstrap-servers: 127.0.0.1:9092
      topic: logback_to_logstash

console:
  user:
    username: seata
    password: seata

seata:
  config:
    # 读取tc服务端的配置文件的方式,这里是从nacos配置中心读取,这样如果tc是集群,可以共享配置
    type: nacos
    nacos:
      server-addr: 127.0.0.1:8848
      namespace:
      group: DEFAULT_GROUP
      username: nacos
      password: nacos
      ##if use MSE Nacos with auth, mutex with username/password attribute
      #access-key: ""
      #secret-key: ""
      data-id: seataServer.properties
  registry:
    # tc服务的注册中心类,这里选择nacos,也可以是eureka、zookeeper等
    type: nacos
    nacos:
      application: seata-server # 服务名可以更改
      server-addr: 127.0.0.1:8848 # nacos地址
      group: DEFAULT_GROUP
      namespace:
      username: nacos # nacos用户名密码
      password: nacos
#  server:
#    service-port: 8091 #If not configured, the default is '${server.port} + 1000'
  security:
    secretKey: SeataSecretKey0c382ef121d778043159209298fd40bf3850a017
    tokenValidityInMilliseconds: 1800000
    ignore:
      urls: /,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-fe/public/**,/api/v1/auth/login

nacos中seata的配置
注意:mysql8.0.25之前的版本连接地址需要指定serverTimezone=Asia/Shanghai

# 数据存储方式,db代表数据库
store.mode=db
store.db.datasource=druid
store.db.dbType=mysql
store.db.driverClassName=com.mysql.jdbc.Driver
store.db.url=jdbc:mysql://127.0.0.1:3306/seata?useUnicode=true&rewriteBatchedStatements=true
store.db.user=root # 数据库账号
store.db.password=root # 数据库密码
store.db.minConn=5
store.db.maxConn=30
store.db.globalTable=global_table
store.db.branchTable=branch_table
store.db.queryLimit=100
store.db.lockTable=lock_table
store.db.maxWait=5000
# 事务、日志等配置
server.recovery.committingRetryPeriod=1000
server.recovery.asynCommittingRetryPeriod=1000
server.recovery.rollbackingRetryPeriod=1000
server.recovery.timeoutRetryPeriod=1000
server.maxCommitRetryTimeout=-1
server.maxRollbackRetryTimeout=-1
server.rollbackRetryTimeoutUnlockEnable=false
server.undo.logSaveDays=7
server.undo.logDeletePeriod=86400000

# 客户端与服务端传输方式
transport.serialization=seata
transport.compressor=none
# 关闭metrics功能,提高性能
metrics.enabled=false
metrics.registryType=compact
metrics.exporterList=prometheus
metrics.exporterPrometheusPort=9898

项目继承seata

  • springboot版本: 2.6.X,2.7.X
  • springcloud版本: 2021.0.3
  • springcloudalibaba版本: 2021.0.4.0

你可能感兴趣的:(seata,spring,cloud)