MySQL 通过数据库文件安装 Seata 1.4.2 和 Nacos 1.4.2 简介 Seata 是一款开源的分布式事务解决方案,它支持分布式系统中的事务管理,Nacos 是一个注册中心和服务配置中心,它可以帮助我们管理服务和服务配置,以下是通过数据库文件安装 Seata 1.4.2 和 Nacos 1.4.2 的详细步骤。 环境准备 Java SDK:确保你的环境中安装了 Java SDK,版本至少为 1.8。 MySQL:确保你的环境中安装了 MySQL,版本至少为 5.7。 Maven:用于构建和安装依赖。 安装步骤 1. 下载依赖 你需要下载 Seata 和 Nacos 的安装包。 Seata 1.4.2 安装包:[Seata 1.4.2](https://github.com/seata/seata/releases/download/v1.4.2/seataserver1.4.2.tar.gz) Nacos 1.4.2 安装包:[Nacos 1.4.2](https://github.com/alibaba/nacos/releases/download/1.4.2/nacosserver1.4.2.tar.gz) 2. 解压安装包 将下载的安装包解压到你的服务器上。
tar zxvf seataserver1.4.2.tar.gz
tar zxvf nacosserver1.4.2.tar.gz
3. 配置 MySQL 配置 MySQL 数据库用于存储 Seata 的状态信息。
CREATE DATABASE seata;
USE seata;
CREATE TABLEglobal_lock
(
lock_key
char(36) NOT NULL,
lock_value
varchar(100) DEFAULT NULL,
lock_timestamp
bigint(13) NOT NULL DEFAULT '0',
lock_update_time
timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (lock_key
)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLEbranch_table
(
xid
char(36) NOT NULL,
branch_id
bigint(20) NOT NULL,
resource_id
varchar(256) NOT NULL,
lock_key
char(36) NOT NULL,
branch_type
tinyint(1) NOT NULL,
status
tinyint(1) NOT NULL,
client_id
varchar(256) DEFAULT NULL,
application_data
varchar(1024) DEFAULT NULL,
transaction_id
bigint(20) DEFAULT NULL,
resource_group_id
varchar(128) DEFAULT NULL,
lock_flag
tinyint(1) DEFAULT NULL,
branch_type_id
varchar(256) DEFAULT NULL,
PRIMARY KEY (xid
,branch_id
),
KEYidx_branch_status_lock_flag
(status
,lock_flag
)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLElock_table
(
lock_key
char(36) NOT NULL,
table_name
varchar(128) NOT NULL,
application_data
varchar(1024) DEFAULT NULL,
lock_time
timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
lock_host
varchar(100) DEFAULT NULL,
PRIMARY KEY (lock_key
)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLEglobal_table
(
xid
char(36) NOT NULL,
transaction_id
bigint(20) NOT NULL,
status
tinyint(1) NOT NULL,
application_id
varchar(32) DEFAULT NULL,
application_data
varchar(2000) DEFAULT NULL,
lock_flag
tinyint(1) DEFAULT NULL,
branch_id
bigint(20) DEFAULT NULL,
resource_group_id
varchar(32) DEFAULT NULL,
create_time
timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
update_time
timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
transaction_service_group
varchar(32) DEFAULT NULL,
timeout
int(11) DEFAULT NULL,
begin_time
bigint(20) DEFAULT NULL,
apply_time
bigint(20) DEFAULT NULL,
last_time
bigint(20) DEFAULT NULL,
@end_time
bigint(20) DEFAULT NULL,
rollback_info
longtext,
geo_location
varchar(256) DEFAULT NULL,
PRIMARY KEY (xid
),
KEYidx_transaction_id
(transaction_id
)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLEundo_log
(
id
bigint(20) NOT NULL AUTO_INCREMENT,
branch_id
bigint(20) NOT NULL,
xid
char(36) NOT NULL,
context
longtext NOT NULL,
rollback_info
longtext NOT NULL,
log_status
int(11) NOT NULL,
log_created
timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
log_modified
timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (id
),
UNIQUE KEYux_undo_log
(xid
,branch_id
)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
4. 配置 Seata 编辑seataserver1.4.2/conf/file.conf
文件,配置 MySQL 数据库连接信息。
store.mode = db
store.db.type = mysql
store.db.url = jdbc:mysql://localhost:3306/seata?useUnicode=true&useSSL=false&characterEncoding=utf8
store.db.user = root
store.db.password = root
5. 配置 Nacos 编辑nacosserver1.4.2/conf/application.properties
文件,配置 Nacos 服务器。
spring.datasource.platform=mysql
mysql.service.name=nacos
mysql.db.host=127.0.0.1
mysql.db.port=3306
mysql.db.user=root
mysql.db.password=root
mysql.db.dbname=nacos
6. 启动服务 启动 Nacos 服务器:
cd nacosserver1.4.2/bin
sh startup.sh m standalone
启动 Seata 服务:
cd seataserver1.4.2/bin
sh seataserver.sh h 127.0.0.1 p 8091
通过以上步骤,你已经在 MySQL 上成功安装并配置了 Seata 和 Nacos,你可以根据你的业务需求,配置你的应用程序以使用 Seata 进行分布式事务管理。