【seata系列】centos服务器带你踩坑搭建seata以及解决MySQL8.0无法启动问题
目录
- 准备
- 配置
- registry.conf
- file.conf
- 创建相关表和数据库
- 启动
- 踩坑
- 运行
准备
通过github下载安装包:https://github.com/seata/seata/releases/tag/v1.3.0
seate中文文档:http://seata.io/zh-cn/docs/overview/what-is-seata.html
将下载的安装包上传到服务器,解压缩即可;
配置
进入conf
目录,主要修改file.conf
和registry.conf
registry.conf
由于小编想要整合nacos注册中心,故这里选择nacos配置项,如下:
registry {type = "nacos"loadBalance = "RandomLoadBalance"loadBalanceVirtualNodes = 10nacos {application = "seata-server"serverAddr = "127.0.0.1:8848"group = "SEATA_GROUP"namespace = ""cluster = "default"}
}
config {type = "file"file {name = "file.conf"}
}
type:换成自己整合的注册中心,例如nacos;
serverAddr:服务注册地址,nacos服务所在服务器IP;
file.conf
配置项如下:
修改mode改为db
;然后修改db配置中的MySQL相关配置信息
;
store {mode = "db"## database store propertydb {datasource = "druid"dbType = "mysql"driverClassName = "com.mysql.jdbc.Driver"url = "jdbc:mysql://127.0.0.1:3306/seata?useSSL=false&serverTimezone=UTC"user = "root"password = "123456"minConn = 5maxConn = 100globalTable = "global_table"branchTable = "branch_table"lockTable = "lock_table"queryLimit = 100maxWait = 5000}
}
创建相关表和数据库
- 新建一个名为
seata
数据库(名称可以是其他的,只要上面的配置能够对应上即可); - 创建
global_table
、branch_table
和lock_table
三张表;
三张表结构如下:
-- -------------------------------- The script used when storeMode is 'db' --------------------------------
-- the table to store GlobalSession data
CREATE TABLE IF NOT EXISTS `global_table`
(`xid` VARCHAR(128) NOT NULL,`transaction_id` BIGINT,`status` TINYINT NOT NULL,`application_id` VARCHAR(32),`transaction_service_group` VARCHAR(32),`transaction_name` VARCHAR(128),`timeout` INT,`begin_time` BIGINT,`application_data` VARCHAR(2000),`gmt_create` DATETIME,`gmt_modified` DATETIME,PRIMARY KEY (`xid`),KEY `idx_gmt_modified_status` (`gmt_modified`, `status`),KEY `idx_transaction_id` (`transaction_id`)
) ENGINE = InnoDBDEFAULT CHARSET = utf8;-- the table to store BranchSession data
CREATE TABLE IF NOT EXISTS `branch_table`
(`branch_id` BIGINT NOT NULL,`xid` VARCHAR(128) NOT NULL,`transaction_id` BIGINT,`resource_group_id` VARCHAR(32),`resource_id` VARCHAR(256),`branch_type` VARCHAR(8),`status` TINYINT,`client_id` VARCHAR(64),`application_data` VARCHAR(2000),`gmt_create` DATETIME(6),`gmt_modified` DATETIME(6),PRIMARY KEY (`branch_id`),KEY `idx_xid` (`xid`)
) ENGINE = InnoDBDEFAULT CHARSET = utf8;-- the table to store lock data
CREATE TABLE IF NOT EXISTS `lock_table`
(`row_key` VARCHAR(128) NOT NULL,`xid` VARCHAR(96),`transaction_id` BIGINT,`branch_id` BIGINT NOT NULL,`resource_id` VARCHAR(256),`table_name` VARCHAR(32),`pk` VARCHAR(36),`gmt_create` DATETIME,`gmt_modified` DATETIME,PRIMARY KEY (`row_key`),KEY `idx_branch_id` (`branch_id`)
) ENGINE = InnoDBDEFAULT CHARSET = utf8;
启动
启动seata server
的脚本位于bin
文件内,Linux/Mac
环境使用seata-server.sh
脚本启动;
Windows环境使用seata-server.bat
脚本启动。
Linux/Mac启动方式示例如下所示:
nohup sh seata-server.sh -p 8091 -h 127.0.0.1
命令说明:
通过nohup
命令让seata server在系统后台运行。
脚本参数:
- -p:指定启动seata server的端口号。
- -h:指定seata server所绑定的主机,这里配置要注意指定的主机IP要与业务服务内的配置文件保持一致;
如:-h 192.168.1.10,业务服务配置文件内应该配置192.168.1.10,即使在同一台主机上也要保持一致。
踩坑
- 问题1
启动过程中报错如下:
Java HotSpot(TM) 64-Bit Server VM warning: Cannot open file /opt/software/seata/logs/seata_gc.log due to No such file or directory
意思是没有存在日志目录,故按照报错日志建立对应的日志目录;
- 问题2
由于Seata不支持数据库8.0+以上的版本,然后小编安装的MySQL8.0+版本,故无法启动;
解决方案:
1.先将file.cof文件中数据库驱动修改为com.mysql.cj.jdbc.Driver
- 替换MySQL连接驱动包:
默认seata/lib
自带的jar为:
下载新的mysql-connect包:
mysql官网下载地址:https://dev.mysql.com/downloads/connector/j/
选择对应的MySQL版本,选择系统平台:Platform Independent,下载后解压缩;
把该Jar包上传到服务器替换seata自带的MySQL-connector依赖即可;
运行
经过上面的踩坑解决后,再次运行seata命令sh ./bin/seata-server.sh -p 8091 -h IP
,如图:
表明seata启动成功,注意这里是非后台运行。
【seata系列】centos服务器带你踩坑搭建seata以及解决MySQL8.0无法启动问题相关推荐
- 服务器重新部署踩坑记
服务器重新部署踩坑记 Intro 之前的服务器是 Ubuntu 18.04 ,上周周末想升级一下服务器系统,从 18.04 升级到 20.04,结果升级升挂了... 后来 SSH 始终连不上,索性删除 ...
- 将Hexo个人博客部署到个人云服务器--最详细踩坑教程
将Hexo个人博客部署到个人云服务器–最详细踩坑教程 文章目录 将Hexo个人博客部署到个人云服务器--最详细踩坑教程 一. 背景 *二. 获取体验产品--服务器(选读节) (一)说明 (二)购买体验 ...
- AspNetCore3.1 在CentOS 用docker发布 踩坑辛酸史
AspNetCore3.1 在CentOS 用docker发布 踩坑辛酸史 发布场景:windows上虚拟机 CentOS(7.8)环境 创建AspNetCore3.1 项目,加入Docker支持 首 ...
- 快速上手docker-java,示例全网最全,带你踩坑,带你飞
提前踩坑 刚入项目组,就开始用dokcer-java去干活了,由于之前没接触过,所以就开始全网找资料,于是乎,找了一堆博客,好像都差不多,虽然都能跑起来,但是我的需求并没有得以实现: 无法连接远程 ...
- 小米平板2无线网卡服务器,二手平板踩坑 篇二:400多收下小米平板2——屏幕通病有点要命...
二手平板踩坑 篇二:400多收下小米平板2--屏幕通病有点要命 2020-04-11 21:34:22 2点赞 6收藏 7评论 又是一次踩坑,这个平板我总体感觉还是不错的,屏幕有点难受 价格就不说了, ...
- ecs php mysql集成环境_在阿里云 CentOS 服务器(ECS)上搭建 nginx + mysql + php-fpm 环境...
阿里云的云服务器(ECS)可以选择多种操作系统,打算用它运行 Drupal或者 WordPress ,你最好选择 Linux 系统,这篇文章的演示是基于阿里云的 CentOS 操作系统的服务器.我们在 ...
- nginx 在阿里云怎么安装mysql_在阿里云 CentOS 服务器(ECS)上搭建 nginx + mysql + php-fpm 环境...
阿里云的云服务器(ECS)可以选择多种操作系统,打算用它运行 Drupal或者 WordPress ,你最好选择 Linux 系统,这篇文章的演示是基于阿里云的 CentOS 操作系统的服务器.我们在 ...
- 移动硬盘安装ubuntu-16.04,疯狂踩坑、分析及解决方法
一直想在移动硬盘里安装一个ubuntu系统,尝试了四五天,我想我基本各种问题都在踩坑,知识欠缺太多了,以防以后ubuntu再次崩溃,在这整理一篇在移动硬盘安装整个ubuntu-16.04的流程. 参考 ...
- window查看端口号使用_踩坑搭建vue说端口号被占用?
" 最近自己有时间搭建了一下vue框架,遇到了一个问题,端口号被占用" 这个时候我就根据这个报错搜了一下百度,遇到了 解决方法(本人使用mac系统):在控制台输入sudo lsof ...
最新文章
- asp.net开发中自定义网站的目录
- 输入字符串中含有该字符的个数
- 北京加强数据中心节能审查,2030年100%利用可再生能源
- wxWidgets:wxRichTextFieldTypeStandard类用法
- linux查看端口号是否被占用
- ConcurrentHashMap的源码分析-resizeStamp
- lambda表达式浅析【C++学习笔记】
- 哈工大成立人工智能研究院,NLP全国第三
- java对jna的配置选项_JNA编程之一:入门 | 学步园
- yum安装Apache2.4
- LoadRunner的Apache的监控
- 向量加减法首尾规律_平面向量加减法口诀
- setheader是什么意思_HTTP 请求头 响应头信息含义
- JAVA计算机毕业设计政府会议管理系统Mybatis+系统+数据库+调试部署
- HTML背景带视频的个人炫酷引导页源码
- BTC地址不同格式的区别
- 【行研报告】小红书红人及商业内容数据报告—附下载链接
- Android使用usb线传输大文件笔记
- 对于母版页的一些修改
- 火线,零线,地线各自颜色和作用(转载)