--安装mysql
--注:完成安装需要建立数据库nacos_config,
安装mysql8报密码校验错误,执行
/*************************************/
1、修改用户密码加密规则
ALTER USER 'root'@'%' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
2、更新用户密码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
3、刷新权限
FLUSH PRIVILEGES;
4、重置密码
ALTER USER 'root'@'%' IDENTIFIED BY 'admin'
/*************************************/
/*************************************/
执行官方脚本
docker run --name mysql01 --restart=always \
-p 3306:3306 \
--net mynetwork --ip 192.168.31.130 --privileged=true \
-e TZ=Asia/Shanghai \
-v /kdata/mysql/conf:/etc/mysql/conf.d \
-v /kdata/mysql/logs:/logs \
-v /kdata/mysql/data:/var/lib/mysql \
-v /etc/localtime:/etc/localtime:ro \
-e MYSQL_ROOT_PASSWORD=admin \
-d mysql:5.7
/*************************************/
--安装nacos集群
--注:如果mysql安装在docker中需配置容器内部ip
如果是mysql8,需要调整nacos内部信息(jar)
------nacos01------
docker run --name nacos01 --restart=always \
-p 8847:8847 \
--net mynetwork --ip 172.18.0.11 --privileged=true \
-e PREFER_HOST_MODE=hostname \
-e MODE=cluster \
-e JVM_XMS=256m \
-e JVM_XMX=256m \
-e NACOS_APPLICATION_PORT=8847 \
-e NACOS_SERVER_PORT=8847 \
-e NACOS_SERVER_IP=192.168.31.129 \
-e NACOS_SERVERS="192.168.31.129:8847 192.168.31.129:8848 192.168.31.129:8849" \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_DB_PARAM="characterEncoding=utf8&connectTimeout=10000&socketTimeout=30000&autoReconnect=true" \
-e MYSQL_SERVICE_HOST=192.168.31.130 \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD=admin \
-e MYSQL_SERVICE_DB_NAME=nacos_config \
-v /kdata/nacos01/logs:/home/nacos/logs \
-d nacos/nacos-server:1.4.1
------nacos02------
docker run --name nacos02 --restart=always \
-p 8848:8848 \
--net mynetwork --ip 172.18.0.12 --privileged=true \
-e PREFER_HOST_MODE=hostname \
-e MODE=cluster \
-e JVM_XMS=256m \
-e JVM_XMX=256m \
-e NACOS_APPLICATION_PORT=8848 \
-e NACOS_SERVER_PORT=8848 \
-e NACOS_SERVER_IP=192.168.31.129 \
-e NACOS_SERVERS="192.168.31.129:8847 192.168.31.129:8848 192.168.31.129:8849" \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_DB_PARAM="characterEncoding=utf8&connectTimeout=10000&socketTimeout=30000&autoReconnect=true" \
-e MYSQL_SERVICE_HOST=192.168.31.130 \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD=admin \
-e MYSQL_SERVICE_DB_NAME=nacos_config \
-v /kdata/nacos02/logs:/home/nacos/logs \
-d nacos/nacos-server:1.4.1
------nacos03------
docker run --name nacos03 --restart=always \
-p 8849:8849 \
--net mynetwork --ip 172.18.0.14 --privileged=true \
-e PREFER_HOST_MODE=hostname \
-e MODE=cluster \
-e JVM_XMS=256m \
-e JVM_XMX=256m \
-e NACOS_APPLICATION_PORT=8849 \
-e NACOS_SERVER_PORT=8849 \
-e NACOS_SERVER_IP=192.168.31.129 \
-e NACOS_SERVERS="192.168.31.129:8847 192.168.31.129:8848 192.168.31.129:8849" \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_DB_PARAM="characterEncoding=utf8&connectTimeout=10000&socketTimeout=30000&autoReconnect=true" \
-e MYSQL_SERVICE_HOST=192.168.31.130 \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD=admin \
-e MYSQL_SERVICE_DB_NAME=nacos_config \
-v /kdata/nacos03/logs:/home/nacos/logs \
-d nacos/nacos-server:1.4.1
--安装nginx
--nginx01
--注:配置nacos负载均衡(nacos01,nacos02,nacos03)
docker run --name nginx01 --restart=always \
-p 8088:80 \
--net mynetwork --ip 172.18.0.13 --privileged=true \
-e TZ="Asia/Shanghai" \
-v /kdata/nginx/conf.d:/etc/nginx/conf.d \
-v /kdata/nginx/cert:/etc/nginx/cert \
-v /kdata/nginx/www:/usr/share/nginx/html \
-v /kdata/nginx/logs:/var/log/nginx \
-d nginx
docker pull bladex/sentinel-dashboard:1.8.0
docker run --name sentinel --restart=always \
--net mynetwork --ip 172.18.0.15 --privileged=true \
-p 8858:8858 \
-d bladex/sentinel-dashboard:1.8.0
docker start sentinel
CREATE TABLE IF NOT EXISTS `undo_log`
(
`branch_id` BIGINT(20) NOT NULL COMMENT 'branch transaction id',
`xid` VARCHAR(100) NOT NULL COMMENT 'global transaction id',
`context` VARCHAR(128) NOT NULL COMMENT 'undo_log context,such as serialization',
`rollback_info` LONGBLOB NOT NULL COMMENT 'rollback info',
`log_status` INT(11) NOT NULL COMMENT '0:normal status,1:defense status',
`log_created` DATETIME(6) NOT NULL COMMENT 'create datetime',
`log_modified` DATETIME(6) NOT NULL COMMENT 'modify datetime',
UNIQUE KEY `ux_undo_log` (`xid`, `branch_id`)
) ENGINE = InnoDB
AUTO_INCREMENT = 1
DEFAULT CHARSET = utf8 COMMENT ='AT transaction mode undo 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 = InnoDB
DEFAULT 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 = InnoDB
DEFAULT 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 = InnoDB
DEFAULT CHARSET = utf8;
docker pull seataio/seata-server:1.4.1
docker run --name seata-server --restart=always \
-p 8091:8091 \
--net mynetwork --ip 172.18.0.16 --privileged=true \
-d seataio/seata-server:1.4.1
docker run --name seata --restart=always \
-p 8091:8091 \
--net mynetwork --ip 172.18.0.16 --privileged=true \
-e SEATA_IP= 192.168.31.129 \
-e SEATA_PORT=8091 \
-e STORE_MODE=db \
service.vgroupMapping.my_service_group=default
service.vgroupMapping.service-storage-group=defalut
service.default.grouplist=192.168.31.129:8091
service.enableDegrade=false
service.disableGlobalTransaction=false
store.mode=db
store.db.datasource=druid
store.db.dbType=mysql
store.db.driverClassName=com.mysql.cj.jdbc.Driver
store.db.url=jdbc:mysql://192.168.31.130:3306/seata?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false
store.db.user=root
store.db.password=admin
store.db.minConn=5
store.db.maxConn=30
store.db.globalTable=global_table
store.db.branchTable=branch_table
store.db.queryLimit=100
store.db.lockTable=lock_table
store.db.maxWait=5000
sh nacos_config.sh
运行脚本命令:sh nacos-config.sh [-h host] [-p port] [-g group] [-t tenant] [-u username] [-w password];
sh nacos-config.sh -h nacos的ip -p nacos端口
-g nacos配置文件的组
-t 你的namespace号(若是public可省略此选项)
-u nacos用户名 -w nacos密码
-h nacos地址
-p nacos端口,默认 8848
-g nacos配置组
-t naocos的命名空间id
-u -w 登录nacos的账号、密码
sh nacos-config.sh -h 192.168.31.129 -p 8088 -u nacos -p nacos
bash /kdata/seata/config/nacos/nacos-config.sh -h 192.168.31.129 -p 8088 -t 085ed0f6-c894-488a-bc1e-ee2fb90ce24e -g SEATA_GROUP -u nacos -w nacos