文章目录
文章目录
注:
只贴出来使用的nacos、mysql配置,其他的都是默认的。
下载下来的是没有nacos和mysql的配置的,若需要在application.yml
的同级目录下的application.example.yml
文件里复制过来修改。
修改前的配置
application.yml
文件位置:seata-server-2.0.0/conf/application.yml
seata:
#配置中心
config:
#配置中心类型,默认为file
type: nacos
#nacos配置中心配置信息
nacos:
#nacos服务地址
server-addr: 127.0.0.1:8848
#命名空间,默认为空也就是public
namespace:
#分组,默认为DEFAULT_GROUP
group: SEATA_GROUP
context-path:
#指定配置中心的seata配置
data-id: seata.yaml
#注册中心
registry:
#注册中心类型,默认为file
type: nacos
#nacos注册中心配置信息
nacos:
#指定注册到nacos注册中心的服务名
application: seata-server
#nacos服务地址
server-addr: 127.0.0.1:8848
#分组,默认为DEFAULT_GROUP
group: SEATA_GROUP
#命名空间,默认为空也就是public
namespace:
#指定注册至nacos注册中心的集群名
cluster: default
context-path:
# #if use MSE Nacos with auth, mutex with username/password attribute
# access-key:
# secret-key:
store:
#指定seata配置存放的位置,默认file,缓存
mode: db
#数据库连接信息
db:
datasource: druid
#数据库类型
db-type: mysql
#数据库驱动
driver-class-name: com.mysql.jdbc.Driver
#数据库连接
url: jdbc:mysql://localhost:3306/seata?useUnicode=true
#数据库用户名
user: mysql
#数据库密码
password: mysql
#最小连接数
min-conn: 10
#最大连接数
max-conn: 100
#指定seata数据库的全局事务信息表,自动生成,默认即可
global-table: global_table
#指定seata数据库的分支信息(事务参与者信息)表,自动生成,默认即可
branch-table: branch_table
#指定seata数据库的全局锁表,自动生成,默认即可
lock-table: lock_table
#指定seata数据库的分布式锁表,自动生成,默认即可
distributed-lock-table: distributed_lock
#最大等待时间
max-wait: 5000
# server:
# service-port: 8091 #If not configured, the default is '${server.port} + 1000'
seata.yml
文件位置:nacos访问页面的配置中心/seata.yml
#事务分组
#主要用于解决异地机房停电容错,可以快速切换事务分组。
#default_tx_group:配置事务的分组名称,可以自定义
#default:必须等于application.yml中 seata.registry.nacos.cluster=default
service:
vgroupMapping:
default_tx_group: default
store:
mode: db
lock:
mode: db
session:
mode: db
#数据库连接
db:
datasource: druid
dbType: mysql
driverClassName: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/seata?useUnicode=true&rewriteBatchedStatements=true
user: mysql
password: mysql
minConn: 5
maxConn: 30
globalTable: global_table
branchTable: branch_table
distributedLockTable: distributed_lock
queryLimit: 100
lockTable: lock_table
maxWait: 5000
修改后的配置
application.yml
文件位置:seata-server-2.0.0/conf/application.yml
seata:
#配置中心
config:
#配置中心类型,默认为file
type: nacos
#nacos配置中心配置信息
nacos:
#nacos服务地址
server-addr: 127.0.0.1:8848
#命名空间,默认为空也就是public
namespace:
#分组,默认为DEFAULT_GROUP
group: SEATA_GROUP
context-path:
#指定配置中心的seata配置
data-id: seata.yaml
#注册中心
registry:
#注册中心类型,默认为file
type: nacos
#nacos注册中心配置信息
nacos:
#指定注册到nacos注册中心的服务名
application: seata-server
#nacos服务地址
server-addr: 127.0.0.1:8848
#分组,默认为DEFAULT_GROUP
group: SEATA_GROUP
#命名空间,默认为空也就是public
namespace:
#指定注册至nacos注册中心的集群名
cluster: default
context-path:
# #if use MSE Nacos with auth, mutex with username/password attribute
# access-key:
# secret-key:
store:
#指定seata配置存放的位置,默认file,缓存
mode: db
#数据库连接信息
db:
#数据源
datasource: druid
#数据库类型
db-type: mysql
#数据库驱动
#mysql5.x:driverClassName: com.mysql.jdbc.Driver
driverClassName: com.mysql.cj.jdbc.Driver
#数据库连接
#mysql5.x
#url: jdbc:mysql://localhost:3306/seata?useUnicode=true
#mysql8.x
url: jdbc:mysql://localhost:3306/seata?useSSL=false&useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true&rewriteBatchedStatements=true
#数据库用户名
user: mysql
#数据库密码
password: mysql
#最小连接数
min-conn: 10
#最大连接数
max-conn: 100
#指定seata数据库的全局事务信息表,自动生成,默认即可
global-table: global_table
#指定seata数据库的分支信息(事务参与者信息)表,自动生成,默认即可
branch-table: branch_table
#指定seata数据库的全局锁表,自动生成,默认即可
lock-table: lock_table
#指定seata数据库的分布式锁表,自动生成,默认即可
distributed-lock-table: distributed_lock
#最大等待时间
max-wait: 5000
# server:
# service-port: 8091 #If not configured, the default is '${server.port} + 1000'
seata.yml
文件位置:nacos访问页面的配置中心/seata.yml
#事务分组
#主要用于解决异地机房停电容错,可以快速切换事务分组。
#default_tx_group:配置事务的分组名称,可以自定义
#default:必须等于application.yml中 seata.registry.nacos.cluster=default
service:
vgroupMapping:
default_tx_group: default
store:
mode: db
lock:
mode: db
session:
mode: db
#数据库连接
db:
datasource: druid
dbType: mysql
#mysql5.x:driverClassName: com.mysql.jdbc.Driver
driverClassName: com.mysql.cj.jdbc.Driver
#mysql5.x
#url: jdbc:mysql://localhost:3306/seata?useUnicode=true&rewriteBatchedStatements=true
#mysql8.x
url: jdbc:mysql://localhost:3306/seata?useSSL=false&useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true&rewriteBatchedStatements=true
user: mysql
password: mysql
minConn: 5
maxConn: 30
globalTable: global_table
branchTable: branch_table
lockTable: lock_table
distributedLockTable: distributed_lock
#查询条数
queryLimit: 100
#最大等待时间
maxWait: 5000
修改前的报错:
1、启动Seata服务,报ssl验证失败
原因:mysql8需要关闭验证
解决方法:在mysql连接后加上useSSL=false,例如:
url: jdbc:mysql://localhost:3306/seata?useSSL=false
注:seata配置mysql连接不能用 | 连接,在业务服务中是可以的。
2、启动Seata服务,报Unknown system variable ‘query_cache_size’
原因:mysql8是没有这个配置的,驱动用的是com.mysql.jdbc.Driver驱动,在 seata-server-2.0.0\lib\jdbc 下的驱动,应该是为了兼容低版本的。
mysql-connector-java-5.1.42.jar
mysql-connector-java-8.0.27.jar
解决方法:
把驱动从 com.mysql.jdbc.Driver
改成 com.mysql.cj.jdbc.Driver
mysql连接属性参考
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
url: |
#MySQL数据库链接
jdbc:mysql://localhost:3306/test?
#关闭安全验证,5.7版本以后必须加,之前的版本默认为false
useSSL=false&
#指定所处理字符解码的格式
useUnicode=true&
#指定所处理字符编码的格式
characterEncoding=utf8&
#指定时区
serverTimezone=GMT%2B8&
#允许客户端从服务器获取公钥,mysql8以后要添加,防止报错
allowPublicKeyRetrieval=true&
#mybatis允许多行sql执行
allowMultiQueries=true&
#打开批处理配置,对insert/update/delete有效,默认是false
rewriteBatchedStatements=true&
#Java把零值日期转换为null值
zeroDateTimeBehavior=convertToNull
username: mysql
password: mysql
maximum-pool-size: 5
nacos配置中心配置数据库连接参考
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
url: >
jdbc:mysql://localhost:3306/test?
useSSL=false&
useUnicode=true&
characterEncoding=utf8&
serverTimezone=GMT%2B8&
allowPublicKeyRetrieval=true&
allowMultiQueries=true&
rewriteBatchedStatements=true&
zeroDateTimeBehavior=convertToNull
username: mysql
password: mysql
maximum-pool-size: 5
注:
不能使用 | 连接
不能使用 # 注释,会被编译
nacos配置中心自建seata配置
访问nacos配置页面:http://localhost:8848/nacos/
新建配置:
命名空间:public
Data ID:seata.yaml
Group:SEATA_GROUP
配置格式:yaml
注:也可以建properties文件,nacos配置中心默认就是properties文件,如果是properties文件时Data ID可以不需要后缀的文件扩展名,seata配置方便使用properties、txt,使用不同类型的时候seata不需要增加文件类型,只需要使用
application.yml
的seata.config.nacos.data-id=seata.yaml
指定到nacos配置中心配置好的文件名称就好了。
总结
还是有点尴尬的,我还以为默认的配置mysql8也可以使用,所以才开始就是用的默认配置,驱动也是看到他们说的seata的报错可能是没驱动,换了个驱动就好了。配置不写那么多注释了哈,参考就好,我能看懂的也不多,很多都很清晰。(◕ᴗ◕✿)