MySQL 外置
一、前置条件
- 外置 MySQL 5.7.x ONES 版本要求:3.14.x 需要大于等于【3.14.148】6.1.x 需要大于等于【6.1.57】
- 外置 MySQL 5.7.x 版本:需要是 5.7.42 - 5.7.44,未来更新的版本可能存在兼容性问题
- 外置 MySQL 8.0.x ONES 版本要求:需要大于等于【6.1.57】
- 外置 MySQL 8.0.x 版本要求:需要大于 8.0.32 小于 8.1.0
- 外置 MySQL 8.4.x ONES 版本要求:需要大于等于【7.17.0】
- 迁移过程请停机,不要使用业务!!!
二、准备外置 MySQL
1. 安装Mysql
外置数据库由客户提供,客户自行维护并确保数据安全。
示例安装命令如下
docker run -d -p 3306:3306 --name mysql \
-e MYSQL_ROOT_PASSWORD=<mysqlRootPassword> \
-v /path/to/your/mysql_data:/var/lib/mysql \
mysql:5.7.43
2. 调整默认配置
方案1: 如果外置数据库是Mysql8,可替换如下 my.cnf 配置文件
# mysql 8.x 请使用 curl -O https://res.ones.pro/script/k3stool/mysql_8_my.cnf
curl -O https://res.ones.pro/script/k3stool/my.cnf
docker cp my.cnf <containerID>:/etc/
docker restart <containerID>
方案2: 如果客户不允许直接替换 my.cnf,请务必调整下面指定的配置项
[mysqld]
# 自增 id
auto_increment_increment=1
auto_increment_offset=1
# 字符集
character_set_server=utf8mb4
collation_server=utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4'
# 事务级别
transaction_isolation = REPEATABLE-READ
# 默认存储引擎
default_storage_engine = InnoDB
# binlog
log_bin = mysql-bin
binlog_format = row
# GTID
gtid_mode=on
enforce_gtid_consistency=on
session_track_gtids=OWN_GTID
session_track_state_change=ON
[mysqldump]
quick # 该配置项找不到的话可以不用配置
max_allowed_packet = 1024M
3. 登录 MySQL 查看服务是否正常
mysql -uroot -p<mysqlRootPassword>