目录

  • 准备
  • 配置
    • 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.confregistry.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}
}

创建相关表和数据库

  1. 新建一个名为seata数据库(名称可以是其他的,只要上面的配置能够对应上即可);
  2. 创建global_tablebranch_tablelock_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
  1. 替换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无法启动问题相关推荐

  1. 服务器重新部署踩坑记

    服务器重新部署踩坑记 Intro 之前的服务器是 Ubuntu 18.04 ,上周周末想升级一下服务器系统,从 18.04 升级到 20.04,结果升级升挂了... 后来 SSH 始终连不上,索性删除 ...

  2. 将Hexo个人博客部署到个人云服务器--最详细踩坑教程

    将Hexo个人博客部署到个人云服务器–最详细踩坑教程 文章目录 将Hexo个人博客部署到个人云服务器--最详细踩坑教程 一. 背景 *二. 获取体验产品--服务器(选读节) (一)说明 (二)购买体验 ...

  3. AspNetCore3.1 在CentOS 用docker发布 踩坑辛酸史

    AspNetCore3.1 在CentOS 用docker发布 踩坑辛酸史 发布场景:windows上虚拟机 CentOS(7.8)环境 创建AspNetCore3.1 项目,加入Docker支持 首 ...

  4. 快速上手docker-java,示例全网最全,带你踩坑,带你飞

    提前踩坑 刚入项目组,就开始用dokcer-java去干活了,由于之前没接触过,所以就开始全网找资料,于是乎,找了一堆博客,好像都差不多,虽然都能跑起来,但是我的需求并没有得以实现: ​ 无法连接远程 ...

  5. 小米平板2无线网卡服务器,二手平板踩坑 篇二:400多收下小米平板2——屏幕通病有点要命...

    二手平板踩坑 篇二:400多收下小米平板2--屏幕通病有点要命 2020-04-11 21:34:22 2点赞 6收藏 7评论 又是一次踩坑,这个平板我总体感觉还是不错的,屏幕有点难受 价格就不说了, ...

  6. ecs php mysql集成环境_在阿里云 CentOS 服务器(ECS)上搭建 nginx + mysql + php-fpm 环境...

    阿里云的云服务器(ECS)可以选择多种操作系统,打算用它运行 Drupal或者 WordPress ,你最好选择 Linux 系统,这篇文章的演示是基于阿里云的 CentOS 操作系统的服务器.我们在 ...

  7. nginx 在阿里云怎么安装mysql_在阿里云 CentOS 服务器(ECS)上搭建 nginx + mysql + php-fpm 环境...

    阿里云的云服务器(ECS)可以选择多种操作系统,打算用它运行 Drupal或者 WordPress ,你最好选择 Linux 系统,这篇文章的演示是基于阿里云的 CentOS 操作系统的服务器.我们在 ...

  8. 移动硬盘安装ubuntu-16.04,疯狂踩坑、分析及解决方法

    一直想在移动硬盘里安装一个ubuntu系统,尝试了四五天,我想我基本各种问题都在踩坑,知识欠缺太多了,以防以后ubuntu再次崩溃,在这整理一篇在移动硬盘安装整个ubuntu-16.04的流程. 参考 ...

  9. window查看端口号使用_踩坑搭建vue说端口号被占用?

    " 最近自己有时间搭建了一下vue框架,遇到了一个问题,端口号被占用" 这个时候我就根据这个报错搜了一下百度,遇到了 解决方法(本人使用mac系统):在控制台输入sudo lsof ...

最新文章

  1. asp.net开发中自定义网站的目录
  2. 输入字符串中含有该字符的个数
  3. 北京加强数据中心节能审查,2030年100%利用可再生能源
  4. wxWidgets:wxRichTextFieldTypeStandard类用法
  5. linux查看端口号是否被占用
  6. ConcurrentHashMap的源码分析-resizeStamp
  7. lambda表达式浅析【C++学习笔记】
  8. 哈工大成立人工智能研究院,NLP全国第三
  9. java对jna的配置选项_JNA编程之一:入门 | 学步园
  10. yum安装Apache2.4
  11. LoadRunner的Apache的监控
  12. 向量加减法首尾规律_平面向量加减法口诀
  13. setheader是什么意思_HTTP 请求头 响应头信息含义
  14. JAVA计算机毕业设计政府会议管理系统Mybatis+系统+数据库+调试部署
  15. HTML背景带视频的个人炫酷引导页源码
  16. BTC地址不同格式的区别
  17. 【行研报告】小红书红人及商业内容数据报告—附下载链接
  18. Android使用usb线传输大文件笔记
  19. 对于母版页的一些修改
  20. 火线,零线,地线各自颜色和作用(转载)

热门文章

  1. 分享我的数据恢复经历,IBM文件系统及存储故障数据恢复
  2. Web前端技术趋势:HTML5仍不宜用作生产
  3. 我看到东边的阳光就这样照进车窗
  4. ipconfig和ping 命令的各种参数
  5. EMQX源码阅读笔记
  6. 二分法查找的JAVA程序
  7. spark 如何用netty实现akka的actor模型
  8. erlang的dict源码解析(1)
  9. 收获,不止SQL优化——抓住SQL的本质--第十章
  10. 初学者没有搞明白的GOROOT,GOPATH,GOBIN,project目录