seata启动报错:the name of service provider for [io.seata.core.store.db.DataSourceGenerator] name is null

系统:centos

nacos版本:1.3.0

seata版本:1.2.0

坑:使用docker部署的nacos服务,在seata下载seata1.2.0的压缩包部署到服务器上,在部署seata_server时,使用nacos存seata_server的配置,上传seata的配置的到nacos中,上传步骤略,上传成功后可以在nacos中看到seata的配置:

seata启动报错:the name of service provider for [io.seata.core.store.db.DataSourceGenerator] name is null

 

上传配置后,修改seata_server相关配置后,修改配置略,启动seata_server一直报错:

the name of service provider for [io.seata.core.store.db.DataSourceGenerator] name is null

seata启动报错:the name of service provider for [io.seata.core.store.db.DataSourceGenerator] name is null

从报错信息中可以看出因为没有读取到nacos中seata_server配置的数据源相关信息导致启动报错

检查seata_server的数据库及需要建的表等相关信息,这些都没有问题。

 

解决问题:当时就怀疑nacos有问题,此时在nacos官网下载nacos1.3.0的压缩包,抛弃docker中的nacos,使用官网下载的nacos后,启动nacos后重新上传seata_server的配置,重新启动seata_server命令如下:

sh ./bin/seata-server.sh -p 8091 -h 127.0.0.1 -m db -n 1

终于启动成功了:

seata启动报错:the name of service provider for [io.seata.core.store.db.DataSourceGenerator] name is null

 

原因是从docker拉取的nacos有问题,导致seata_server不能够读取到nacos中的seata_server的配置。个人建议部署nacos使用官网的压缩包来部署