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
示例安装命令如下。外置数据库的数据安全由提供方保证。请自行确保数据安全
mysqlRootPassword 可以参考下方获取数据库用户密码获取
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. 调整默认配置
替换 my.cnf 文件
如果是其他方式安装的 MySQL 请根据具体环境替换 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>
如果客户不允许直接替换 my.cnf,请协调客户调整下面的配置项(必须修改)
注意!!!!仅调整如下配置可能存在性能问题,最好还是替换 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>