From 8aff141e1512b888c2b11d398a59d34638bc7fd0 Mon Sep 17 00:00:00 2001 From: Ye Jinrong Date: Thu, 6 Mar 2025 16:09:00 +0800 Subject: [PATCH 01/30] Release GreatSQL 8.0.32-27 for Docker --- GreatSQL/CHANGELOG.md | 42 +++++---------- GreatSQL/Dockerfile | 6 +-- GreatSQL/README.md | 19 +++---- GreatSQL/greatsql-test.sql | 107 +++++++++++++++++++++++-------------- GreatSQL/my.cnf | 12 +---- 5 files changed, 96 insertions(+), 90 deletions(-) diff --git a/GreatSQL/CHANGELOG.md b/GreatSQL/CHANGELOG.md index 5b16adc..81bce63 100644 --- a/GreatSQL/CHANGELOG.md +++ b/GreatSQL/CHANGELOG.md @@ -1,28 +1,14 @@ -# 8.0.32-26 更新日志 - -## 2024.12 -* 基础镜像改为Oracle Linux 9-sim,以适配更多硬件平台(如海光3000型号) -* GreatSQL安装包调整为minimal二进制包,不再采用RPM包以适配Oracle Linux 9-sim系统 -* 保留mysqldump、mysqlbinlog、mysqldecompress等客户端工具 -* 修复MAXPERF逻辑判断问题,修复CPU核数判断逻辑 - -## 2024.8 -* 当MAXPERF值不为1时不额外输出,避免造成误解/困惑 -* 增加时区参数(`TZ`)说明建议。 -* 修改MAXPERF默认值(不再默认为1) -* 裁剪更多文件 -* 将基础镜像修改为Oracle Linux 8-sim,缩减镜像尺寸 -* 增加腾讯云TCR容器资源 -* 客户端prompt微调,增加空格 -* 修复初始化不当导致某些连接无法获取账户名的问题, issue: https://greatsql.cn/thread-840-1-1.html -* 默认关闭NUMA - -## 2024.7.30 -* 更新到GreatSQL 8.0.32-26 -* 独立出 group_replication_single_primary_fast_mode 变量名 -* 独立出 group_replication_enforce_update_everywhere_checks 变量名 -* 增加从阿里云ACR拉取说明 -* 对照GreatSQL 8.0.32-26的my.cnf模板,更新my.cnf配置,增加相应参数变量 -* 规范化my.cnf配置中的参数值 - -[8.0.32-26]: https://gitee.com/GreatSQL/GreatSQL-Docker/tree/greatsql-8.0.32-26/GreatSQL +# 8.0.32-27 更新日志 + +## 2025.3.31 +* 更新到GreatSQL 8.0.32-27 +* 新增高性能并行查询引擎Turbo +* 升级Rapid引擎内核版本 +* 优化MGR大事务压缩传输机制 +* 完善greatdb_ha plugin +* InnoDB Page支持zstd压缩 +* 完善Oracle兼容特性 +* 完善安全性 +* 修复了几个可能导致crash或丢数据的bug + +[8.0.32-27]: https://gitee.com/GreatSQL/GreatSQL-Docker/tree/greatsql-8.0.32-27/GreatSQL diff --git a/GreatSQL/Dockerfile b/GreatSQL/Dockerfile index be15722..9e464eb 100644 --- a/GreatSQL/Dockerfile +++ b/GreatSQL/Dockerfile @@ -14,13 +14,13 @@ GREATSQL_EXTRACT_DIR=/usr/local \ TMP_DIR=/tmp \ GREATSQL_PORT=3306 \ DEPS="libaio-devel numactl-devel xz openssl-devel openssl procps-ng util-linux" \ -GREATSQL_DOCKER_DOWNLOAD_URL="https://gitee.com/GreatSQL/GreatSQL-Docker/raw/greatsql-8.0.32-26/GreatSQL" \ +GREATSQL_DOCKER_DOWNLOAD_URL="https://gitee.com/GreatSQL/GreatSQL-Docker/raw/greatsql-8.0.32-27/GreatSQL" \ GREATSQL_INIT="greatsql-init.sh" \ GREATSQL_SHRINK="greatsql-shrink.sh" \ GREATSQL_TEST="greatsql-test.sql" \ GREATSQL_CNF="my.cnf" \ -GREATSQL_DOWNLOAD_URL="https://gitee.com/GreatSQL/GreatSQL-Docker/raw/greatsql-8.0.32-26/GreatSQL" \ -GREATSQL_PKG="GreatSQL-8.0.32-26-Linux-glibc2.17-${TARGETARCH}-minimal" +GREATSQL_DOWNLOAD_URL="https://gitee.com/GreatSQL/GreatSQL-Docker/raw/greatsql-8.0.32-27/GreatSQL" \ +GREATSQL_PKG="GreatSQL-8.0.32-27-Linux-glibc2.17-${TARGETARCH}-minimal" RUN microdnf install --nodocs -y ${DEPS} && \ microdnf update -y && \ diff --git a/GreatSQL/README.md b/GreatSQL/README.md index 944d266..8c17d7c 100644 --- a/GreatSQL/README.md +++ b/GreatSQL/README.md @@ -10,12 +10,13 @@ ## 基本信息 - 维护者: GreatSQL(greatsql@greatdb.com) - 联系我们:greatsql@greatdb.com -- 最新版本:GreatSQL 8.0.32-26 -- 最后更新时间:2024-12-30 +- 最新版本:GreatSQL 8.0.32-27 +- 最后更新时间:2025-03-31 ## 支持哪些tag -- [latest](https://hub.docker.com/layers/greatsql/greatsql/latest/images/sha256-1f735f42aecdf4ee5c65699b228ce520a79f4d2e6b4fbaaddb607babcf604f0d) +- [latest](https://hub.docker.com/layers/greatsql/greatsql/latest/images/sha256-) +- [8.0.32-27](https://hub.docker.com/layers/greatsql/greatsql/8.0.32-27/images/sha256-) - [8.0.32-26](https://hub.docker.com/layers/greatsql/greatsql/8.0.32-26/images/sha256-1f735f42aecdf4ee5c65699b228ce520a79f4d2e6b4fbaaddb607babcf604f0d) - [8.0.32-25](https://hub.docker.com/layers/greatsql/greatsql/8.0.32-25/images/sha256-6a01d0b1b9107b286601249202803da5b08e9f729b8727f691ce423928994eef) - [8.0.32-24](https://hub.docker.com/layers/greatsql/greatsql/8.0.32-24/images/sha256-0d1ee8a01e4dec5d3698053319978c1817ca455eb6a11de9fa7e13b747fa9f3e) @@ -28,7 +29,7 @@ ```shell $ docker pull registry.cn-beijing.aliyuncs.com/greatsql/greatsql -$ docker pull registry.cn-beijing.aliyuncs.com/greatsql/greatsql:8.0.32-26 +$ docker pull registry.cn-beijing.aliyuncs.com/greatsql/greatsql:8.0.32-27 ``` 还可以从腾讯云TCR拉取,例如: @@ -36,7 +37,7 @@ $ docker pull registry.cn-beijing.aliyuncs.com/greatsql/greatsql:8.0.32-26 ```shell $ docker pull ccr.ccs.tencentyun.com/greatsql/greatsql -$ docker pull ccr.ccs.tencentyun.com/greatsql/greatsql:8.0.32-26 +$ docker pull ccr.ccs.tencentyun.com/greatsql/greatsql:8.0.32-27 ``` @@ -92,20 +93,20 @@ $ docker exec -it greatsql bash [root@greatsql /]# mysql Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 34 -Server version: 8.0.32-26 GreatSQL, Release 26, Revision a68b3034c3d +Server version: 8.0.32-27 GreatSQL, Release 27, Revision aa66a385910 ... -mysql Ver 8.0.32-26 for Linux on x86_64 (GreatSQL (GPL), Release 26, Revision a68b3034c3d) +mysql Ver 8.0.32-27 for Linux on x86_64 (GreatSQL (GPL), Release 27, Revision aa66a385910) ... [root@GreatSQL][(none)]> \s ... -Server version: 8.0.32-26 GreatSQL, Release 26, Revision a68b3034c3d +Server version: 8.0.32-27 GreatSQL, Release 27, Revision aa66a385910 ... [root@GreatSQL][(none)]> SELECT version(); +-----------+ | version() | +-----------+ -| 8.0.32-26 | +| 8.0.32-27 | +-----------+ 1 row in set (0.00 sec) diff --git a/GreatSQL/greatsql-test.sql b/GreatSQL/greatsql-test.sql index 419d20b..c828a4a 100644 --- a/GreatSQL/greatsql-test.sql +++ b/GreatSQL/greatsql-test.sql @@ -1,6 +1,6 @@ -- -- greatsql-test.sql --- GreatSQL 主要功能特性自测脚本,适配版本:8.0.32-26 +-- GreatSQL 主要功能特性自测脚本,适配版本:8.0.32-27 -- -- -- 主要测试项 @@ -11,38 +11,29 @@ -- 5. 测试Clone加密 -- 6. 测试MGR特性 -- 7. 测试greatdb_ha特性 +-- 8. 测试turbo引擎 -- -- 关于检查结果: -- 当检查结果输出内容包含 OK 时,表示检查结果正确 -- 当检查结果输出内容包含 NG(NOT GOOD缩写) 时,表示检查结果异常,需要人为再确认 -- -- CHANGELOG --- # 2024.7.29 --- 1. 升级到 GreatSQL 8.0.32-26 +-- # 2025.03.31 +-- 1. 升级到 GreatSQL 8.0.32-27 -- 2. 针对以下几个新特性做校验 --- - 支持Clone复制时设置Donor GTID延迟阈值 --- - 支持Clone压缩、增量备份 --- - 支持Binlog读取限速 --- - 支持非阻塞式DDL --- - 支持NUMA亲和性优化 --- - 支持无主键并发LOAD DATA优化 --- - 支持用户的登录信息记录 --- - 支持基于策略的数据脱敏 --- --- CHANGELOG --- # 2024.6.5 --- 1. 增加对 GreatSQL 新增的几个主要特性检查 --- 2. 对每项检查,对其结果都增加 OK/NG 标识 --- 3. 不再详细输出每个测试命令,但仍在脚本中保留(仅注释掉) +-- * 新增高性能并行查询引擎Turbo +-- * 升级Rapid引擎内核版本 +-- * InnoDB Page支持zstd压缩 +-- * 新增Binlog限速状态查看 -- - +SET NAMES utf8mb4; -- 1. 版本号 SELECT '--- 1. checking VERSION() ---' AS STAGE_1; -SELECT IF(@@version = '8.0.32-26', "OK: VERSION IS 8.0.32-26", "NG, VERSION IS NOT 8.0.32-26") AS '1.1 check: VERSION' FROM DUAL; +SELECT IF(@@version = '8.0.32-27', "OK: VERSION IS 8.0.32-27", "NG, VERSION IS NOT 8.0.32-27") AS '1.1 check: VERSION' FROM DUAL; SELECT ' ' FROM DUAL; -SELECT IF(@@version_comment LIKE '%GreatSQL%26%a68b3034c3d', "OK, Revision IS a68b3034c3d", "NG, Revision IS NOT a68b3034c3d") AS '1.2 check: VERSION_COMMENT' FROM DUAL; +SELECT IF(@@version_comment LIKE '%GreatSQL%27%aa66a385910', "OK, Revision IS aa66a385910", "NG, Revision IS NOT aa66a385910") AS '1.2 check: VERSION_COMMENT' FROM DUAL; SELECT ' ' FROM DUAL; SELECT ' ' FROM DUAL; @@ -51,10 +42,11 @@ SELECT ' ' FROM DUAL; SELECT '--- 2. checking CREATE NEW DB & TABLE, INSERT & SELECT ROWS & Oracle compatibility ---' AS STAGE_2; -- CREATE DB & TABLE -CREATE DATABASE IF NOT EXISTS greatsql_803226 CHARACTER SET utf8mb4; -USE greatsql_803226; +CREATE DATABASE IF NOT EXISTS greatsql_803227 CHARACTER SET utf8mb4; +USE greatsql_803227; -CREATE TABLE t_803226( +DROP TABLE IF EXISTS t_803227; +CREATE TABLE t_803227( id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, c1 CLOB NOT NULL, c2 VARCHAR2(30) NOT NULL DEFAULT '', @@ -63,7 +55,7 @@ c4 PLS_INTEGER UNSIGNED NOT NULL DEFAULT 0 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- INSERT ROWS -INSERT INTO t_803226 VALUES +INSERT INTO t_803227 VALUES (1, rand(), rand(), ROUND(RAND()*1024000), ROUND(RAND()*1024000)), (2, rand(), rand(), ROUND(RAND()*1024000), ROUND(RAND()*1024000)), (4, rand(), rand(), ROUND(RAND()*1024000), ROUND(RAND()*1024000)), @@ -76,20 +68,17 @@ SELECT ' ' FROM DUAL; -- 3. Oracle语法 -SELECT '--- 3. checking SELECT ANY/ALL FROM t_803226 ---' AS STAGE_3; +SELECT '--- 3. checking SELECT ANY/ALL FROM t_803227 ---' AS STAGE_3; -- ALL Syntax -SELECT COUNT(*) INTO @ROWS FROM t_803226 WHERE id < ALL(4,8,16); +SELECT COUNT(*) INTO @ROWS FROM t_803227 WHERE id < ALL(4,8,16); SELECT IF(@ROWS = 2, 'OK, FOUND 2 ROWS', CONCAT('NG, FOUND ', @ROWS, ' ROWS')) AS '3.1 check: FOUND_ROWS(ALL)' FROM DUAL; SELECT ' ' FROM DUAL; -- ANY Syntax -SELECT COUNT(*) INTO @ROWS FROM t_803226 WHERE id < ANY(4,8,16); +SELECT COUNT(*) INTO @ROWS FROM t_803227 WHERE id < ANY(4,8,16); SELECT IF(@ROWS = 4, 'OK, FOUND 4 ROWS', CONCAT('NG, FOUND ', @ROWS, ' ROWS')) AS '3.2 check: FOUND_ROWS(ANY)' FROM DUAL; SELECT ' ' FROM DUAL; --- DROP TABLE -DROP TABLE IF EXISTS t_803226; - -- SET SQL_MODE = ORACLE SET sql_mode = ORACLE; SELECT IF(@@sql_mode = 'PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ONLY_FULL_GROUP_BY,ORACLE,STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION', 'OK, ORACLE MODE', 'NG, NOT ORACLE MODE') AS '3.3 check: SQL_MODE' FROM DUAL; @@ -120,7 +109,27 @@ SET sql_mode = DEFAULT; SELECT IF(@ret = 'Hi GreatSQL', "OK, SUPPORT DECLARE...BEGIN Syntax", "NG, NOT SUPPORT DECLARE...BEGIN Syntax") AS '3.6 check: DECLARE...BEGIN Syntax' FROM DUAL; --- 4. Rapid引擎 +-- 4. Turbo引擎 +SELECT '--- 4. checking Turbo ENGINE ---' AS STAGE_4; + +-- INSTALL & CHECK Turbo ENGINE +INSTALL PLUGIN Turbo SONAME 'turbo.so'; +SELECT IF(ENGINE = "turbo", "OK, SUPPORT Turbo ENGINE", "NG, NOT SUPPORT Turbo ENGINE") AS '4.1 check: Turbo ENGINE' FROM information_schema.ENGINES WHERE ENGINE = 'turbo' AND SUPPORT = 'YES'; +SELECT ' ' FROM DUAL; + + +SELECT '4. check: EXPLAIN SELECT USING Turbo' FROM DUAL; + +EXPLAIN FORMAT=TREE SELECT /*+ SET_VAR(turbo_enable=ON) SET_VAR(turbo_cost_threshold=0) */ * FROM t_803227; +SELECT ' ' FROM DUAL; + +SELECT '4. UNINSTALL Turbo ENGINE' FROM DUAL; +UNINSTALL PLUGIN turbo; + +-- DROP TABLE +DROP TABLE IF EXISTS t_803227; + +-- 5. Rapid引擎 SELECT '--- 4. checking RAPID ENGINE ---' AS STAGE_4; -- INSTALL & CHECK Rapid ENGINE @@ -128,7 +137,7 @@ INSTALL PLUGIN Rapid SONAME 'ha_rapid.so'; SELECT IF(ENGINE = "Rapid", "OK, SUPPORT Rapid ENGINE", "NG, NOT SUPPORT Rapid ENGINE") AS '4.1 check: Rapid ENGINE' FROM information_schema.ENGINES WHERE ENGINE = 'Rapid' AND SUPPORT = 'YES'; SELECT ' ' FROM DUAL; -CREATE TABLE `t_803226_rapid` ( +CREATE TABLE `t_803227_rapid` ( `id` int unsigned NOT NULL AUTO_INCREMENT, `c1` int unsigned NOT NULL DEFAULT '0', `c2` varchar(30) NOT NULL DEFAULT '', @@ -136,10 +145,10 @@ CREATE TABLE `t_803226_rapid` ( ) ENGINE=InnoDB; -- SECONDARY_ENGINE -ALTER TABLE t_803226_rapid SECONDARY_ENGINE = rapid; +ALTER TABLE t_803227_rapid SECONDARY_ENGINE = rapid; -- INSERT ROWS -INSERT INTO t_803226_rapid VALUES +INSERT INTO t_803227_rapid VALUES (1, RAND()*1024000, RAND()*1024000), (2, RAND()*1024000, RAND()*1024000), (4, RAND()*1024000, RAND()*1024000), @@ -150,18 +159,18 @@ SELECT IF(ROW_COUNT() = 6, 'OK, INSERT 6 ROWS', CONCAT('NG, INSERT ', ROW_COUNT( SELECT ' ' FROM DUAL; -- SECONDARY_LOAD -ALTER TABLE t_803226_rapid SECONDARY_LOAD; +ALTER TABLE t_803227_rapid SECONDARY_LOAD; -SELECT IF(CREATE_OPTIONS = 'SECONDARY_ENGINE="rapid" SECONDARY_LOAD="1"', "OK, t_803226_rapid IS A Rapid TABLE", "NG, t_803226_rapid IS NOT A Rapid TABLE") AS '4.3 check: t_803226_rapid' FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'greatsql_803226' AND TABLE_NAME = 't_803226_rapid'; +SELECT IF(CREATE_OPTIONS = 'SECONDARY_ENGINE="rapid" SECONDARY_LOAD="1"', "OK, t_803227_rapid IS A Rapid TABLE", "NG, t_803227_rapid IS NOT A Rapid TABLE") AS '4.3 check: t_803227_rapid' FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'greatsql_803227' AND TABLE_NAME = 't_803227_rapid'; SELECT ' ' FROM DUAL; -- EXPLAIN SELECT '4.4 check: EXPLAIN SELECT FROM Rapid TABLE' FROM DUAL; -EXPLAIN SELECT /*+ SET_VAR(use_secondary_engine=2) SET_VAR(secondary_engine_cost_threshold=0) */ * FROM t_803226_rapid; +EXPLAIN SELECT /*+ SET_VAR(use_secondary_engine=2) SET_VAR(secondary_engine_cost_threshold=0) */ * FROM t_803227_rapid; SELECT ' ' FROM DUAL; -- FORCE USING Rapid ENGINE -SELECT /*+ SET_VAR(use_secondary_engine=1) SET_VAR(secondary_engine_cost_threshold=0) */ COUNT(*) INTO @ROWS FROM t_803226_rapid; +SELECT /*+ SET_VAR(use_secondary_engine=1) SET_VAR(secondary_engine_cost_threshold=0) */ COUNT(*) INTO @ROWS FROM t_803227_rapid; SELECT IF(@ROWS = 6, 'OK, FOUND 6 ROWS', CONCAT('NG, FOUND ', @ROWS, ' ROWS')) AS '4.4 check: FOUND ROWS FROM Rapid TABLE' FROM DUAL; SELECT ' ' FROM DUAL; @@ -254,9 +263,27 @@ SELECT ' ' FROM DUAL; -- 支持Binlog读取限速 SELECT IF(VARIABLE_NAME = "rpl_read_binlog_speed_limit", "OK, Binlog speed limit", "NG, NOT SUPPORT Binlog speed limit") AS 'check: Binlog speed limit' FROM performance_schema.global_variables where variable_name = 'rpl_read_binlog_speed_limit'; SELECT ' ' FROM DUAL; + +SELECT IF(VARIABLE_NAME = "Rpl_data_speed", "OK, Binlog speed limit status", "NG, NOT SUPPORT Binlog speed limit status") AS 'check: Binlog speed limit status' FROM performance_schema.global_status where variable_name = 'Rpl_data_speed'; +SELECT ' ' FROM DUAL; SELECT ' ' FROM DUAL; +-- 10. InnoDB Page压缩支持zstd +SELECT '--- 11. checking InnoDB Page COMPRSSION USING Zstd ---' AS STAGE_11; +USE greatsql_803227; + +DROP TABLE IF EXISTS t_803227; +CREATE TABLE t_803227( +id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, +c1 CLOB NOT NULL, +c2 VARCHAR2(30) NOT NULL DEFAULT '', +c3 NUMBER UNSIGNED NOT NULL DEFAULT 0, +c4 PLS_INTEGER UNSIGNED NOT NULL DEFAULT 0 +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMPRESSION="zstd"; +SELECT IF(CREATE_OPTIONS = 'COMPRESSION="zstd"', "OK, InnoDB Page COMPONENT USING Zstd", "NG, NOT SUPPORT InnoDB Page COMPONENT USING Zstd") AS 'check: InnoDB Page COMPONENT USING Zstd' FROM information_schema.TABLES WHERE TABLE_SCHEMA='greatsql_803227' AND TABLE_NAME='t_803227'; +SELECT ' ' FROM DUAL; +SELECT ' ' FROM DUAL; --- 10. 清理 +-- 11. 清理 SELECT '--- 8. clean up ---' AS STAGE_8; -DROP DATABASE IF EXISTS greatsql_803226; +DROP DATABASE IF EXISTS greatsql_803227; diff --git a/GreatSQL/my.cnf b/GreatSQL/my.cnf index 11d0e14..8281fbb 100644 --- a/GreatSQL/my.cnf +++ b/GreatSQL/my.cnf @@ -1,7 +1,7 @@ # -# my.cnf example for GreatSQL 8.0.32-26 +# my.cnf example for GreatSQL 8.0.32-27 # -# 下面参数选项设置仅作为参考,假定服务器配置为128C256G +# 下面参数选项设置仅作为参考 # [client] socket = /data/GreatSQL/mysql.sock @@ -174,11 +174,3 @@ innodb_spin_wait_delay = 20 innodb_print_lock_wait_timeout_info = ON kill_idle_transaction = 300 innodb_data_file_async_purge = ON - -# InnoDB monitor -#innodb_monitor_enable = "module_innodb,module_server,module_dml,module_ddl,module_trx,module_os,module_purge,module_log,module_lock,module_buffer,module_index,module_ibuf_system,module_buffer_page,module_adaptive_hash" - -# PFS -#performance_schema = 1 -#performance_schema_instrument = '%memory%=on' -#performance_schema_instrument = '%lock%=on' From 164fd6d5c7cc6fd300f5149c4fe7b9a6550169b5 Mon Sep 17 00:00:00 2001 From: Ye Jinrong Date: Thu, 6 Mar 2025 16:20:29 +0800 Subject: [PATCH 02/30] Release GreatSQL 8.0.32-27 for Docker Build --- GreatSQL-Build/CHANGELOG.md | 20 ++++---------------- GreatSQL-Build/Dockerfile | 2 +- GreatSQL-Build/README.md | 17 +++++++++-------- GreatSQL-Build/greatsql-setenv.sh | 10 +++++----- 4 files changed, 19 insertions(+), 30 deletions(-) diff --git a/GreatSQL-Build/CHANGELOG.md b/GreatSQL-Build/CHANGELOG.md index acda9ea..f77cc0f 100644 --- a/GreatSQL-Build/CHANGELOG.md +++ b/GreatSQL-Build/CHANGELOG.md @@ -1,18 +1,6 @@ -# 8.0.32-26 更新日志 +# 8.0.32-27 更新日志 -## 2024.8.19 -* 不再采用多阶段打包 -* 改成只初始化编译环境,由用户自行启动编译工作 -* 进一步压缩镜像尺寸 +## 2025.3.31 +* 更新到GreatSQL 8.0.32-27 -## 2024.8 -* 采用多阶段打包,降低镜像大小 -* 从centos改为oraclelinux -* 调整dnf clean all位置,放在后面,以清除更多cache -* 构建过程中所有日志都打印出来 - -## 2024.7 -* 更新到GreatSQL 8.0.32-26 -* 去掉龙芯判断处理逻辑 - -[8.0.32-26]: https://gitee.com/GreatSQL/GreatSQL-Docker/tree/greatsql-8.0.32-26/GreatSQL-Build +[8.0.32-27]: https://gitee.com/GreatSQL/GreatSQL-Docker/tree/greatsql-8.0.32-27/GreatSQL-Build diff --git a/GreatSQL-Build/Dockerfile b/GreatSQL-Build/Dockerfile index 4c12ccc..4b582ab 100644 --- a/GreatSQL-Build/Dockerfile +++ b/GreatSQL-Build/Dockerfile @@ -11,7 +11,7 @@ ARG TARGETARCH \ OPT_DIR=/opt \ MYSQL_UID=3306 \ MYSQL_USER=mysql \ -GREATSQL_BUILD_DOWNLOAD_URL="https://gitee.com/GreatSQL/GreatSQL-Docker/raw/greatsql-8.0.32-26/GreatSQL-Build" \ +GREATSQL_BUILD_DOWNLOAD_URL="https://gitee.com/GreatSQL/GreatSQL-Docker/raw/greatsql-8.0.32-27/GreatSQL-Build" \ GREATSQL_ENV="greatsql-setenv.sh" \ GREATSQL_BUILD_INIT="greatsql_build_init.sh" diff --git a/GreatSQL-Build/README.md b/GreatSQL-Build/README.md index a5f818c..6541346 100644 --- a/GreatSQL-Build/README.md +++ b/GreatSQL-Build/README.md @@ -10,12 +10,13 @@ ## 基本信息 - 维护者: GreatSQL(greatsql@greatdb.com) - 联系我们:greatsql@greatdb.com -- 最新版本:GreatSQL 8.0.32-26 -- 最后更新时间:2024-08-19 +- 最新版本:GreatSQL 8.0.32-27 +- 最后更新时间:2025-03-31 ## 支持哪些tag -- [latest](https://hub.docker.com/layers/greatsql/greatsql_build/latest/images/sha256-a8bea01ea86b77866f8e4739859537b6f4b5060178ae06552e6fad4607c4e0cf) +- [latest](https://hub.docker.com/layers/greatsql/greatsql_build/latest/images/sha256-) +- [8.0.32-27](https://hub.docker.com/layers/greatsql/greatsql_build/8.0.32-27/images/sha256-) - [8.0.32-26](https://hub.docker.com/layers/greatsql/greatsql_build/8.0.32-26/images/sha256-a8bea01ea86b77866f8e4739859537b6f4b5060178ae06552e6fad4607c4e0cf) - [8.0.32-25](https://hub.docker.com/layers/greatsql/greatsql/8.0.32-25/images/sha256-6a01d0b1b9107b286601249202803da5b08e9f729b8727f691ce423928994eef) @@ -23,10 +24,10 @@ ```shell $ docker pull registry.cn-beijing.aliyuncs.com/greatsql/greatsql_build -$ docker pull registry.cn-beijing.aliyuncs.com/greatsql/greatsql_build:8.0.32-26 +$ docker pull registry.cn-beijing.aliyuncs.com/greatsql/greatsql_build:8.0.32-27 $ docker pull ccr.ccs.tencentyun.com/greatsql/greatsql_build -$ docker pull ccr.ccs.tencentyun.com/greatsql/greatsql_build:8.0.32-26 +$ docker pull ccr.ccs.tencentyun.com/greatsql/greatsql_build:8.0.32-27 ``` > 如果提示 timeout 连接超时错误,多重试几次应该就好了。 @@ -75,15 +76,15 @@ sh-4.4# sh ./greatsql_build_init.sh 3.3 make dynamic link for GreatSQL 4. greatsql build completed! -drwxrwxr-x 13 mysql mysql 293 Aug 16 08:27 GreatSQL-8.0.32-26-ol-glibc2.28-x86_64 -/opt/GreatSQL-8.0.32-26-ol-glibc2.28-x86_64/bin/mysqld Ver 8.0.32-26 for Linux on x86_64 (GreatSQL, Release 26, Revision a68b3034c3d) +drwxrwxr-x 13 mysql mysql 293 Mar 26 13:27 GreatSQL-8.0.32-27-ol-glibc2.28-x86_64 +/opt/GreatSQL-8.0.32-27-ol-glibc2.28-x86_64/bin/mysqld Ver 8.0.32-27 for Linux on x86_64 (GreatSQL, Release 27, Revision aa66a385910) 5. remove files and clean up ``` 可以看到已经完成编译,可以将容器中编译好的二进制包文件拷贝到宿主机上,例如: ```shell -$ docker cp greatsql_build:/opt/GreatSQL-8.0.32-26-ol-glibc2.28-x86_64 /usr/local/ +$ docker cp greatsql_build:/opt/GreatSQL-8.0.32-27-ol-glibc2.28-x86_64 /usr/local/ ``` 如果宿主机环境也是 OracleLinux/CentOS x86_64 的话,这就可以在宿主机环境下直接使用该二进制文件包了。 diff --git a/GreatSQL-Build/greatsql-setenv.sh b/GreatSQL-Build/greatsql-setenv.sh index e6272f7..a66b4b4 100755 --- a/GreatSQL-Build/greatsql-setenv.sh +++ b/GreatSQL-Build/greatsql-setenv.sh @@ -14,8 +14,8 @@ fi MAJOR_VERSION=8 MINOR_VERSION=0 PATCH_VERSION=32 -RELEASE=26 -REVISION=a68b3034c3d +RELEASE=27 +REVISION=aa66a385910 OPT_DIR=/opt GLIBC=`ldd --version | head -n 1 | awk '{print $NF}'` ARCH=`uname -p` @@ -25,9 +25,9 @@ MAKELOG=/tmp/greatsql-automake.log MYSQL_USER=mysql DEST_DIR=${OPT_DIR}/${GREATSQL} GREATSQL_SRC=greatsql-${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}-${RELEASE} -GREATSQL_BUILD_DOWNLOAD_URL="https://gitee.com/GreatSQL/GreatSQL-Docker/raw/greatsql-8.0.32-26/deppkgs" -GREATSQL_MAKESH_DOWNLOAD_URL="https://gitee.com/GreatSQL/GreatSQL-Docker/raw/greatsql-8.0.32-26/GreatSQL-Build" -GREATSQL_SRC_DOWNLOAD_URL="https://product.greatdb.com/GreatSQL-8.0.32-26" +GREATSQL_BUILD_DOWNLOAD_URL="https://gitee.com/GreatSQL/GreatSQL-Docker/raw/greatsql-${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}-${REVISION}/deppkgs" +GREATSQL_MAKESH_DOWNLOAD_URL="https://gitee.com/GreatSQL/GreatSQL-Docker/raw/greatsql-${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}-${REVISION}/GreatSQL-Build" +GREATSQL_SRC_DOWNLOAD_URL="https://product.greatdb.com/GreatSQL-${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}-${REVISION}" BOOST_SRC_DOWNLOAD_URL="https://boostorg.jfrog.io/artifactory/main/release/1.77.0/source" BOOST="boost_1_77_0" PATCHELF="patchelf-0.14.5" From 45466a7e582af02b93a73fe1cb090fd4447d7f3b Mon Sep 17 00:00:00 2001 From: Ye Jinrong Date: Thu, 6 Mar 2025 16:20:46 +0800 Subject: [PATCH 03/30] Release GreatSQL 8.0.32-27 --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 1b2a120..5ec9309 100644 --- a/README.md +++ b/README.md @@ -16,8 +16,8 @@ Dockerfiles可用于自定义和构建docker映像。[戳此阅读更多关于Do ## 基本信息 - 维护者: GreatSQL(greatsql@greatdb.com) - 联系人: greatsql@greatdb.com -- 最新版本:GreatSQL 8.0.32-26 -- 最后更新时间:2025-01-02。 +- 最新版本:GreatSQL 8.0.32-27 +- 最后更新时间:2025-03-06。 ## 镜像仓库列表 - GreatSQL,构建GreatSQL运行环境的Docker镜像 From b597d019b3e910f7661e45f75c71b437bf6c27b1 Mon Sep 17 00:00:00 2001 From: Ye Jinrong Date: Thu, 6 Mar 2025 17:28:17 +0800 Subject: [PATCH 04/30] =?UTF-8?q?=E9=BB=98=E8=AE=A4=E4=B8=8D=E5=8A=A0?= =?UTF-8?q?=E8=BD=BDrapid=E5=BC=95=E6=93=8E=EF=BC=9B=E4=BF=AE=E6=AD=A3?= =?UTF-8?q?=E8=B7=AF=E5=BE=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GreatSQL/greatsql-test.sql | 4 ++-- GreatSQL/my.cnf | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/GreatSQL/greatsql-test.sql b/GreatSQL/greatsql-test.sql index c828a4a..7edf168 100644 --- a/GreatSQL/greatsql-test.sql +++ b/GreatSQL/greatsql-test.sql @@ -236,7 +236,7 @@ SELECT ' ' FROM DUAL; -- 8. 安全特性检查 -- 支持审计日志写表 & 用户的登录信息记录 -- basedir=/usr, REPLACE IF NEEDED -SOURCE /usr/share/mysql/install_audit_log.sql; +SOURCE /usr/local/GreatSQL/share/install_audit_log.sql; SELECT IF(VARIABLE_NAME = "audit_log_to_table", "OK, SUPPORT audit_log_to_table", "NG, NOT SUPPORT audit_log_to_table") AS '8.1 check: audit_log_to_table' FROM performance_schema.global_variables where variable_name = 'audit_log_to_table'; SELECT ' ' FROM DUAL; @@ -245,7 +245,7 @@ SELECT ' ' FROM DUAL; -- 支持基于策略的数据脱敏 -- basedir=/usr, REPLACE IF NEEDED -SOURCE /usr/share/mysql/sys_masking.sql; +SOURCE /usr/local/GreatSQL/share/sys_masking.sql; SELECT IF(COUNT(*)=4, "OK, SUPPORT data masking", "NG, NOT SUPPORT data masking") AS '8.3 check: data masking' FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='sys_masking'; SELECT ' ' FROM DUAL; SELECT ' ' FROM DUAL; diff --git a/GreatSQL/my.cnf b/GreatSQL/my.cnf index 8281fbb..8802190 100644 --- a/GreatSQL/my.cnf +++ b/GreatSQL/my.cnf @@ -95,7 +95,7 @@ loose-gdb_parallel_load = ON loose-innodb_optimize_no_pk_parallel_load = ON # Rapid -loose-plugin_load_add = 'ha_rapid.so' +#loose-plugin_load_add = 'ha_rapid.so' loose-rapid_memory_limit = 128M loose-rapid_worker_threads = 4 loose-rapid_hash_table_memory_limit = 10 From aaa18fb9fbb9110fbad897b198229417459f4ef6 Mon Sep 17 00:00:00 2001 From: Ye Jinrong Date: Thu, 6 Mar 2025 17:41:16 +0800 Subject: [PATCH 05/30] =?UTF-8?q?=E6=9B=B4=E6=96=B0turbo=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GreatSQL/greatsql-test.sql | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/GreatSQL/greatsql-test.sql b/GreatSQL/greatsql-test.sql index 7edf168..99cf322 100644 --- a/GreatSQL/greatsql-test.sql +++ b/GreatSQL/greatsql-test.sql @@ -114,12 +114,28 @@ SELECT '--- 4. checking Turbo ENGINE ---' AS STAGE_4; -- INSTALL & CHECK Turbo ENGINE INSTALL PLUGIN Turbo SONAME 'turbo.so'; -SELECT IF(ENGINE = "turbo", "OK, SUPPORT Turbo ENGINE", "NG, NOT SUPPORT Turbo ENGINE") AS '4.1 check: Turbo ENGINE' FROM information_schema.ENGINES WHERE ENGINE = 'turbo' AND SUPPORT = 'YES'; +SELECT IF(PLUGIN_NAME="turbo", "OK, SUPPORT Turbo ENGINE", "NG, NOT SUPPORT Turbo ENGINE") AS '4.1 check: Turbo ENGINE' FROM information_schema.PLUGINS WHERE PLUGIN_NAME='turbo' AND PLUGIN_STATUS='ACTIVE'; SELECT ' ' FROM DUAL; SELECT '4. check: EXPLAIN SELECT USING Turbo' FROM DUAL; +DROP TABLE IF EXISTS t_803227; +CREATE TABLE t_803227( +id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, +c1 VARCHAR2(30) NOT NULL DEFAULT '', +c2 PLS_INTEGER UNSIGNED NOT NULL DEFAULT 0 +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +-- INSERT ROWS +INSERT INTO t_803227 VALUES +(1, rand(), ROUND(RAND()*1024000)), +(2, rand(), ROUND(RAND()*1024000)), +(4, rand(), ROUND(RAND()*1024000)), +(8, rand(), ROUND(RAND()*1024000)), +(16, rand(), ROUND(RAND()*1024000)), +(32, rand(), ROUND(RAND()*1024000)); + EXPLAIN FORMAT=TREE SELECT /*+ SET_VAR(turbo_enable=ON) SET_VAR(turbo_cost_threshold=0) */ * FROM t_803227; SELECT ' ' FROM DUAL; From 5efcec75cd4f42acb7c7004c3ef4595befa3f5f7 Mon Sep 17 00:00:00 2001 From: Ye Jinrong Date: Fri, 7 Mar 2025 12:37:05 +0800 Subject: [PATCH 06/30] =?UTF-8?q?=E4=BF=AE=E6=94=B9boost=E5=8C=85=E4=B8=8B?= =?UTF-8?q?=E8=BD=BD=E9=93=BE=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GreatSQL-Build/greatsql-setenv.sh | 4 ++-- GreatSQL-Build/greatsql_build_init.sh | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/GreatSQL-Build/greatsql-setenv.sh b/GreatSQL-Build/greatsql-setenv.sh index a66b4b4..994904e 100755 --- a/GreatSQL-Build/greatsql-setenv.sh +++ b/GreatSQL-Build/greatsql-setenv.sh @@ -28,7 +28,7 @@ GREATSQL_SRC=greatsql-${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}-${RELEA GREATSQL_BUILD_DOWNLOAD_URL="https://gitee.com/GreatSQL/GreatSQL-Docker/raw/greatsql-${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}-${REVISION}/deppkgs" GREATSQL_MAKESH_DOWNLOAD_URL="https://gitee.com/GreatSQL/GreatSQL-Docker/raw/greatsql-${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}-${REVISION}/GreatSQL-Build" GREATSQL_SRC_DOWNLOAD_URL="https://product.greatdb.com/GreatSQL-${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}-${REVISION}" -BOOST_SRC_DOWNLOAD_URL="https://boostorg.jfrog.io/artifactory/main/release/1.77.0/source" +BOOST_SRC_DOWNLOAD_URL="https://archives.boost.io/release/1.77.0/source/" BOOST="boost_1_77_0" PATCHELF="patchelf-0.14.5" GREATSQL_ENV="greatsql-setenv.sh" @@ -44,7 +44,7 @@ if [ ${ARCH} = "x86_64" ] ; then CMAKE_EXE_LINKER_FLAGS=" -ljemalloc " fi -DEPS="autoconf automake binutils bison cmake cyrus-sasl-devel cyrus-sasl-scram gcc-c++ \ +DEPS="autoconf automake binutils bison bzip2 cmake cyrus-sasl-devel cyrus-sasl-scram gcc-c++ \ gcc-toolset-11 gcc-toolset-11-annobin-plugin-gcc jemalloc jemalloc-devel krb5-devel libaio-devel \ libcurl-devel libtirpc-devel libudev-devel m4 make ncurses-devel numactl-devel openldap-devel \ openssl openssl-devel pam-devel readline-devel zlib-devel findutils procps-ng xz" diff --git a/GreatSQL-Build/greatsql_build_init.sh b/GreatSQL-Build/greatsql_build_init.sh index c3b7e8c..254d079 100755 --- a/GreatSQL-Build/greatsql_build_init.sh +++ b/GreatSQL-Build/greatsql_build_init.sh @@ -22,11 +22,11 @@ curl -OL -o ${GREATSQL_ENV} ${GREATSQL_MAKESH_DOWNLOAD_URL}/${GREATSQL_ENV} && \ curl -OL -o ${GREATSQL_MAKESH} ${GREATSQL_MAKESH_DOWNLOAD_URL}/${GREATSQL_MAKESH} && \ curl -OL -o ${RPCGEN} ${GREATSQL_BUILD_DOWNLOAD_URL}/${RPCGEN} && \ curl -OL -o ${PATCHELF}.tar.gz ${GREATSQL_BUILD_DOWNLOAD_URL}/${PATCHELF}.tar.gz && \ -curl -OL -o ${BOOST}.tar.gz ${BOOST_SRC_DOWNLOAD_URL}/${BOOST}.tar.gz && \ +curl -OL -o ${BOOST}.tar.bz2 ${BOOST_SRC_DOWNLOAD_URL}/${BOOST}.tar.bz2 && \ curl -OL -o ${GREATSQL_SRC}.tar.xz ${GREATSQL_SRC_DOWNLOAD_URL}/${GREATSQL_SRC}.tar.xz && \ echo " 1.2 extract tarballs ..." && \ tar xf ${OPT_DIR}/${PATCHELF}*z && \ -tar xf ${OPT_DIR}/${BOOST}*z && \ +tar xf ${OPT_DIR}/${BOOST}*z* && \ tar xf ${OPT_DIR}/${GREATSQL_SRC}*z && \ echo " 1.3 chown to ${MYSQL_USER}:${MYSQL_USER} for ${OPT_DIR} ..." && \ chown -R ${MYSQL_USER}:${MYSQL_USER} ${OPT_DIR} && \ From b8f00ddbea3be83b16384897e4d5658c04d3689a Mon Sep 17 00:00:00 2001 From: Ye Jinrong Date: Fri, 7 Mar 2025 12:38:27 +0800 Subject: [PATCH 07/30] update LU --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5ec9309..cdba8ba 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ Dockerfiles可用于自定义和构建docker映像。[戳此阅读更多关于Do - 维护者: GreatSQL(greatsql@greatdb.com) - 联系人: greatsql@greatdb.com - 最新版本:GreatSQL 8.0.32-27 -- 最后更新时间:2025-03-06。 +- 最后更新时间:2025-03-31。 ## 镜像仓库列表 - GreatSQL,构建GreatSQL运行环境的Docker镜像 From 97485af58386ba877869fd65952f8c2386ddfaf3 Mon Sep 17 00:00:00 2001 From: Ye Jinrong Date: Tue, 11 Mar 2025 09:38:19 +0800 Subject: [PATCH 08/30] =?UTF-8?q?=E4=BF=AE=E5=A4=8DGreatSQL=E4=BA=8C?= =?UTF-8?q?=E8=BF=9B=E5=88=B6=E5=8C=85=E4=B8=8B=E8=BD=BD=E5=9C=B0=E5=9D=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GreatSQL/Dockerfile | 2 +- GreatSQL/README.md | 6 +++--- README.md | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/GreatSQL/Dockerfile b/GreatSQL/Dockerfile index 9e464eb..060f1fa 100644 --- a/GreatSQL/Dockerfile +++ b/GreatSQL/Dockerfile @@ -19,7 +19,7 @@ GREATSQL_INIT="greatsql-init.sh" \ GREATSQL_SHRINK="greatsql-shrink.sh" \ GREATSQL_TEST="greatsql-test.sql" \ GREATSQL_CNF="my.cnf" \ -GREATSQL_DOWNLOAD_URL="https://gitee.com/GreatSQL/GreatSQL-Docker/raw/greatsql-8.0.32-27/GreatSQL" \ +GREATSQL_DOWNLOAD_URL="https://product.greatdb.com/GreatSQL-8.0.32-27" \ GREATSQL_PKG="GreatSQL-8.0.32-27-Linux-glibc2.17-${TARGETARCH}-minimal" RUN microdnf install --nodocs -y ${DEPS} && \ diff --git a/GreatSQL/README.md b/GreatSQL/README.md index 8c17d7c..2fc373b 100644 --- a/GreatSQL/README.md +++ b/GreatSQL/README.md @@ -11,12 +11,12 @@ - 维护者: GreatSQL(greatsql@greatdb.com) - 联系我们:greatsql@greatdb.com - 最新版本:GreatSQL 8.0.32-27 -- 最后更新时间:2025-03-31 +- 最后更新时间:2025-03-11 ## 支持哪些tag -- [latest](https://hub.docker.com/layers/greatsql/greatsql/latest/images/sha256-) -- [8.0.32-27](https://hub.docker.com/layers/greatsql/greatsql/8.0.32-27/images/sha256-) +- [latest](https://hub.docker.com/layers/greatsql/greatsql/latest/images/sha256-0b524a865bef665444c778976a88e25cf7d448a18aeeac332f94a59ef27e8fdb) +- [8.0.32-27](https://hub.docker.com/layers/greatsql/greatsql/8.0.32-27/images/sha256-0b524a865bef665444c778976a88e25cf7d448a18aeeac332f94a59ef27e8fdb) - [8.0.32-26](https://hub.docker.com/layers/greatsql/greatsql/8.0.32-26/images/sha256-1f735f42aecdf4ee5c65699b228ce520a79f4d2e6b4fbaaddb607babcf604f0d) - [8.0.32-25](https://hub.docker.com/layers/greatsql/greatsql/8.0.32-25/images/sha256-6a01d0b1b9107b286601249202803da5b08e9f729b8727f691ce423928994eef) - [8.0.32-24](https://hub.docker.com/layers/greatsql/greatsql/8.0.32-24/images/sha256-0d1ee8a01e4dec5d3698053319978c1817ca455eb6a11de9fa7e13b747fa9f3e) diff --git a/README.md b/README.md index cdba8ba..877707a 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ Dockerfiles可用于自定义和构建docker映像。[戳此阅读更多关于Do - 维护者: GreatSQL(greatsql@greatdb.com) - 联系人: greatsql@greatdb.com - 最新版本:GreatSQL 8.0.32-27 -- 最后更新时间:2025-03-31。 +- 最后更新时间:2025-03-11 ## 镜像仓库列表 - GreatSQL,构建GreatSQL运行环境的Docker镜像 From 1e3a157841f901dac84f4540c6bc1fe5323aad43 Mon Sep 17 00:00:00 2001 From: Ye Jinrong Date: Tue, 11 Mar 2025 10:41:16 +0800 Subject: [PATCH 09/30] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E8=AF=B4=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GreatSQL/README.md | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/GreatSQL/README.md b/GreatSQL/README.md index 2fc373b..7665bc4 100644 --- a/GreatSQL/README.md +++ b/GreatSQL/README.md @@ -24,23 +24,28 @@ - [8.0.32-24-arch64](https://hub.docker.com/layers/greatsql/greatsql/8.0.32-24-aarch64/images/sha256-97dfa7074a1c5b2e0355fcf5fc829e8074edca6db7c2e528059786fb0c48a523) - [8.0.25-16-aarch64](https://hub.docker.com/layers/greatsql/greatsql/8.0.25-16-aarch64/images/sha256-c4664d2b84025ed2487d0aecb6090ab9bb0f7ee2033afd9a079ea4f1f9f82b52) -如果无法从 hub.docker.com 拉取,可以尝试从阿里云ACR拉取,例如: +拉取GreatSQL镜像 ```shell -$ docker pull registry.cn-beijing.aliyuncs.com/greatsql/greatsql +docker pull greatsql/greatsql +``` + +还可以指定具体版本号 -$ docker pull registry.cn-beijing.aliyuncs.com/greatsql/greatsql:8.0.32-27 +```shell +docker pull greatsql/greatsql:8.0.32-27 ``` -还可以从腾讯云TCR拉取,例如: +如果无法从hub.docker.com拉取,可以尝试从阿里云ACR或腾讯云TCR拉取,例如: ```shell -$ docker pull ccr.ccs.tencentyun.com/greatsql/greatsql +# 阿里云ACR +docker pull registry.cn-beijing.aliyuncs.com/greatsql/greatsql -$ docker pull ccr.ccs.tencentyun.com/greatsql/greatsql:8.0.32-27 +# 腾讯云TCR +$ docker pull ccr.ccs.tencentyun.com/greatsql/greatsql ``` - > 如果提示 timeout 连接超时错误,多重试几次应该就好了。 ## GreatSQL Docker镜像使用 From b82d9c74d361ed55bdf4337058e1882cab1e5b3a Mon Sep 17 00:00:00 2001 From: Ye Jinrong Date: Tue, 11 Mar 2025 10:41:42 +0800 Subject: [PATCH 10/30] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=8F=98=E9=87=8F?= =?UTF-8?q?=E9=94=99=E8=AF=AF=EF=BC=9B=E6=9B=B4=E6=96=B0=E8=AF=B4=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GreatSQL-Build/README.md | 61 +++++++++++++++++++++++++------ GreatSQL-Build/greatsql-setenv.sh | 6 +-- 2 files changed, 52 insertions(+), 15 deletions(-) diff --git a/GreatSQL-Build/README.md b/GreatSQL-Build/README.md index 6541346..9fd6fa8 100644 --- a/GreatSQL-Build/README.md +++ b/GreatSQL-Build/README.md @@ -11,7 +11,7 @@ - 维护者: GreatSQL(greatsql@greatdb.com) - 联系我们:greatsql@greatdb.com - 最新版本:GreatSQL 8.0.32-27 -- 最后更新时间:2025-03-31 +- 最后更新时间:2025-03-11 ## 支持哪些tag @@ -20,28 +20,64 @@ - [8.0.32-26](https://hub.docker.com/layers/greatsql/greatsql_build/8.0.32-26/images/sha256-a8bea01ea86b77866f8e4739859537b6f4b5060178ae06552e6fad4607c4e0cf) - [8.0.32-25](https://hub.docker.com/layers/greatsql/greatsql/8.0.32-25/images/sha256-6a01d0b1b9107b286601249202803da5b08e9f729b8727f691ce423928994eef) -如果无法从 hub.docker.com 拉取,可以尝试从阿里云 ACR 或腾讯云 TCR 拉取,例如: +拉取GreatSQL-Build镜像 ```shell -$ docker pull registry.cn-beijing.aliyuncs.com/greatsql/greatsql_build -$ docker pull registry.cn-beijing.aliyuncs.com/greatsql/greatsql_build:8.0.32-27 +docker pull greatsql/greatsql_build +``` + +还可以指定具体版本号 + +```shell +docker pull greatsql/greatsql_build:8.0.32-27 +``` + +如果无法从hub.docker.com拉取,可以尝试从阿里云ACR或腾讯云TCR拉取,例如: -$ docker pull ccr.ccs.tencentyun.com/greatsql/greatsql_build -$ docker pull ccr.ccs.tencentyun.com/greatsql/greatsql_build:8.0.32-27 +```shell +# 阿里云ACR +docker pull registry.cn-beijing.aliyuncs.com/greatsql/greatsql_build + +# 腾讯云TCR +docker pull ccr.ccs.tencentyun.com/greatsql/greatsql_build ``` > 如果提示 timeout 连接超时错误,多重试几次应该就好了。 ## GreatSQL Build Docker镜像构建 +在开始前,需要先准备好一个Docker builx环境,这是为了支持多平台构建。 + +如果不需要支持多平台,则可以自行修改Dockerfile中的第10-11行,将原来的内容 + +```ini + 10 ARG TARGETARCH \ + 11 OPT_DIR=/opt \ +``` + +修改成下面这样 + +```ini + 10 ARG OPT_DIR=/opt \ +``` + +也就是去掉`TARGETARCH`参数即可。 + +关于Docker buildx环境的配置,可以参考这篇文章:[使用 buildx 构建跨平台镜像](https://zhuanlan.zhihu.com/p/622399482) 或 [Multi-platform builds](https://docs.docker.com/build/building/multi-platform/),这里不赘述。 + +```shell +docker buildx build --platform linux/arm64,linux/amd64 -t greatsql/greatsql_build . --push +``` + +上述命令会查找当前目录下的 `Dockerfile` 文件,并构建名为 `greatsql/greatsql_build` 的Docker镜像,并最终会push到`greatsql/greatsql_build`镜像仓库。这里需要修改成您自己的仓库名,例如改成我自己个人的: + ```shell -$ docker build -t greatsql/greatsql_build . +docker buildx build --platform linux/arm64,linux/amd64 -t yejr/greatsql_build . --push ``` -上述命令会查找当前目录下的 `Dockerfile` 文件,并构建名为 `greatsql/greatsql_build` 的Docker镜像。 在构建镜像时,会自动从服务器上下载相应的源码包文件、初始化脚本等文件,并全自动化方式完成镜像构建工作。 -如果无法从 hub.docker.com 拉取 oraclelinux 镜像,则修改 `Dockerfile` 文件的前几行,将镜像资源修改为阿里云或腾讯云: +如果无法从hub.docker.com拉取OracleLinux镜像,则修改`Dockerfile`文件的前几行,将镜像资源修改为阿里云或腾讯云: ```ini 1 #FROM oraclelinux:8-slim as builder @@ -53,10 +89,10 @@ $ docker build -t greatsql/greatsql_build . ```shell # 创建新容器 -$ docker run -itd --hostname greatsql_build --name greatsql_build greatsql/greatsql_build +docker run -itd --hostname greatsql_build --name greatsql_build greatsql/greatsql_build # 进入容器,手动启动编译工作 -$ docker exec -it greatsql_build sh +docker exec -it greatsql_build sh sh-4.4# pwd / sh-4.4# @@ -83,8 +119,9 @@ drwxrwxr-x 13 mysql mysql 293 Mar 26 13:27 GreatSQL-8.0.32-27-ol-glibc2.28 ``` 可以看到已经完成编译,可以将容器中编译好的二进制包文件拷贝到宿主机上,例如: + ```shell -$ docker cp greatsql_build:/opt/GreatSQL-8.0.32-27-ol-glibc2.28-x86_64 /usr/local/ +docker cp greatsql_build:/opt/GreatSQL-8.0.32-27-ol-glibc2.28-x86_64 /usr/local/ ``` 如果宿主机环境也是 OracleLinux/CentOS x86_64 的话,这就可以在宿主机环境下直接使用该二进制文件包了。 diff --git a/GreatSQL-Build/greatsql-setenv.sh b/GreatSQL-Build/greatsql-setenv.sh index 994904e..499a42d 100755 --- a/GreatSQL-Build/greatsql-setenv.sh +++ b/GreatSQL-Build/greatsql-setenv.sh @@ -25,9 +25,9 @@ MAKELOG=/tmp/greatsql-automake.log MYSQL_USER=mysql DEST_DIR=${OPT_DIR}/${GREATSQL} GREATSQL_SRC=greatsql-${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}-${RELEASE} -GREATSQL_BUILD_DOWNLOAD_URL="https://gitee.com/GreatSQL/GreatSQL-Docker/raw/greatsql-${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}-${REVISION}/deppkgs" -GREATSQL_MAKESH_DOWNLOAD_URL="https://gitee.com/GreatSQL/GreatSQL-Docker/raw/greatsql-${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}-${REVISION}/GreatSQL-Build" -GREATSQL_SRC_DOWNLOAD_URL="https://product.greatdb.com/GreatSQL-${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}-${REVISION}" +GREATSQL_BUILD_DOWNLOAD_URL="https://gitee.com/GreatSQL/GreatSQL-Docker/raw/greatsql-${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}-${RELEASE}/deppkgs" +GREATSQL_MAKESH_DOWNLOAD_URL="https://gitee.com/GreatSQL/GreatSQL-Docker/raw/greatsql-${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}-${RELEASE}/GreatSQL-Build" +GREATSQL_SRC_DOWNLOAD_URL="https://product.greatdb.com/GreatSQL-${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}-${RELEASE}" BOOST_SRC_DOWNLOAD_URL="https://archives.boost.io/release/1.77.0/source/" BOOST="boost_1_77_0" PATCHELF="patchelf-0.14.5" From 0faf643b5da362250a748436a79cc65120943680 Mon Sep 17 00:00:00 2001 From: Ye Jinrong Date: Tue, 11 Mar 2025 14:05:42 +0800 Subject: [PATCH 11/30] =?UTF-8?q?=E6=9B=B4=E6=96=B0GreatSQL-Build=E6=9C=80?= =?UTF-8?q?=E6=96=B0tag=E9=93=BE=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GreatSQL-Build/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/GreatSQL-Build/README.md b/GreatSQL-Build/README.md index 9fd6fa8..fe7faf6 100644 --- a/GreatSQL-Build/README.md +++ b/GreatSQL-Build/README.md @@ -15,8 +15,8 @@ ## 支持哪些tag -- [latest](https://hub.docker.com/layers/greatsql/greatsql_build/latest/images/sha256-) -- [8.0.32-27](https://hub.docker.com/layers/greatsql/greatsql_build/8.0.32-27/images/sha256-) +- [latest](https://hub.docker.com/layers/greatsql/greatsql_build/latest/images/sha256-16c3b1f7336578e9ad96593d8e3b02de032ede456a5f4681f11cff538673bdd8) +- [8.0.32-27](https://hub.docker.com/layers/greatsql/greatsql_build/8.0.32-27/images/sha256-16c3b1f7336578e9ad96593d8e3b02de032ede456a5f4681f11cff538673bdd8) - [8.0.32-26](https://hub.docker.com/layers/greatsql/greatsql_build/8.0.32-26/images/sha256-a8bea01ea86b77866f8e4739859537b6f4b5060178ae06552e6fad4607c4e0cf) - [8.0.32-25](https://hub.docker.com/layers/greatsql/greatsql/8.0.32-25/images/sha256-6a01d0b1b9107b286601249202803da5b08e9f729b8727f691ce423928994eef) From 30d78cf549713194949dac39b946411dd9cea83a Mon Sep 17 00:00:00 2001 From: Ye Jinrong Date: Sun, 28 Sep 2025 09:55:03 +0800 Subject: [PATCH 12/30] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=AB=AF=E5=8F=A3?= =?UTF-8?q?=E6=98=A0=E5=B0=84=E4=BD=BF=E7=94=A8=E8=AF=B4=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GreatSQL-Shell-Build/docker-entrypoint.sh | 2 +- GreatSQL/README.md | 15 ++++++++++++++- GreatSQL/greatsql-init.sh | 3 ++- 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/GreatSQL-Shell-Build/docker-entrypoint.sh b/GreatSQL-Shell-Build/docker-entrypoint.sh index 510bbf0..3c64aee 100755 --- a/GreatSQL-Shell-Build/docker-entrypoint.sh +++ b/GreatSQL-Shell-Build/docker-entrypoint.sh @@ -71,7 +71,7 @@ echo "5. compiling MySQL Shell for GreatSQL" su - ${MYSQL_USER} -s /bin/bash -c "cd ${OPT_DIR}; /bin/sh ${OPT_DIR}/${GREATSQLSH_MAKESH}" && \ echo && \ echo "6. MySQL Shell for GreatSQL 8.0.32-25 build completed!" -pip3.8 install --user certifi pyclamd >> ${MAKELOG} 2>&1 && \ +pip3.8 install -i https://pypi.tuna.tsinghua.edu.cn/simple --user certifi pyclamd >> ${MAKELOG} 2>&1 && \ echo " 6.1 MySQL Shell for GreatSQL 8.0.32-25 version:" && \ ${BASE_DIR}/bin/mysqlsh --version && \ cd ${OPT_DIR} && \ diff --git a/GreatSQL/README.md b/GreatSQL/README.md index 7665bc4..7bb1131 100644 --- a/GreatSQL/README.md +++ b/GreatSQL/README.md @@ -66,10 +66,11 @@ greatsql/greatsql *--hostname=greatsql*,设定容器主机名 *greatsql/greatsql*,指定容器使用的镜像名 -如果想要映射外部 my.cnf 配置文件或自行指定 datadir,还可以类似下面这么用: +如果想要映射外部 my.cnf 配置文件或自行指定 datadir,并且增加端口映射,可以执行下面的命令: ```shell $ docker run -d \ +-P 4406:3306 \ -v /data/greatsql/my.cnf:/etc/my.cnf \ -v /data/greatsql/data:/data \ --name greatsql --hostname=greatsql \ @@ -77,6 +78,12 @@ $ docker run -d \ greatsql/greatsql ``` +其中: + +- 参数 `-P 4406:3306` 的作用是将宿主环境中的 *4406* 端口(宿主中的端口号可自行定义,不与其他服务冲突即可)映射到容器中的 *3306* 端口,这样远程主机就可以通过 *4406* 端口连接容器中的 GreatSQL 数据库实例; +- 参数 `-v /data/greatsql/my.cnf:/etc/my.cnf` 的作用是将宿主环境中的 */data/greatsql/my.cnf* 映射到容器中的 */etc/my.cnf*; +- 参数 `-v /data/greatsql/data:/data` 的作用是将本地 */data/greatsql/data* 目录映射到容器中的 */data* 目录。 + 注意,需要先保证本地目录 `/data/greatsql/data` 是空的才行,否则 GreatSQL 在初始化检测时会报告失败,无法启动,日志中将有类似下面的内容: ```shell @@ -119,6 +126,12 @@ Server version: 8.0.32-27 GreatSQL, Release 27, Revision aa66a385910 [root@GreatSQL][(none)]> SOURCE /tmp/greatsql-test.sql; ``` +如果在创建容器时已经指定了 `-P 4406:3306` 端口映射参数,那么远程主机就可以通过 *4406* 端口连接容器中的 GreatSQL 数据库实例: + +```bash +mysql -h172.16.16.10 -uXX -pXX -P4406 +``` + ## 如何通过 docker-compose 使用GreatSQL镜像 下面是一个docker-compose的配置文件参考 `/data/docker/mysql.yml`: diff --git a/GreatSQL/greatsql-init.sh b/GreatSQL/greatsql-init.sh index cac93a3..5a12174 100755 --- a/GreatSQL/greatsql-init.sh +++ b/GreatSQL/greatsql-init.sh @@ -313,7 +313,8 @@ if [ "$1" = 'mysqld' -a -z "$wantHelp" ]; then fi echo - echo 'MySQL init process done. Ready for start up.' + echo 'MySQL init process done.' + echo 'Ready for start up.' echo fi From 4dea82865280be61c6280792dfcf574b60482664 Mon Sep 17 00:00:00 2001 From: Yejr Date: Wed, 15 Oct 2025 15:24:20 +0800 Subject: [PATCH 13/30] release for GreatSQL 8.4.4-4 --- GreatSQL/CHANGELOG.md | 18 +-- GreatSQL/Dockerfile | 6 +- GreatSQL/README.md | 29 ++-- GreatSQL/greatsql-test.sql | 78 +++++----- GreatSQL/my.cnf | 290 ++++++++++++++++++------------------- 5 files changed, 207 insertions(+), 214 deletions(-) diff --git a/GreatSQL/CHANGELOG.md b/GreatSQL/CHANGELOG.md index 81bce63..a839c2c 100644 --- a/GreatSQL/CHANGELOG.md +++ b/GreatSQL/CHANGELOG.md @@ -1,14 +1,8 @@ -# 8.0.32-27 更新日志 +# 8.4.4-4 更新日志 -## 2025.3.31 -* 更新到GreatSQL 8.0.32-27 -* 新增高性能并行查询引擎Turbo -* 升级Rapid引擎内核版本 -* 优化MGR大事务压缩传输机制 -* 完善greatdb_ha plugin -* InnoDB Page支持zstd压缩 -* 完善Oracle兼容特性 -* 完善安全性 -* 修复了几个可能导致crash或丢数据的bug +## 2025.10.15 +* 更新到GreatSQL 8.4.4-4 +* 调整audit log filter测试方案 +* 修改相应的库名、表名 -[8.0.32-27]: https://gitee.com/GreatSQL/GreatSQL-Docker/tree/greatsql-8.0.32-27/GreatSQL +[8.4.4-4]: https://gitee.com/GreatSQL/GreatSQL-Docker/tree/greatsql-8.4.4-4/GreatSQL diff --git a/GreatSQL/Dockerfile b/GreatSQL/Dockerfile index 060f1fa..b7f0c04 100644 --- a/GreatSQL/Dockerfile +++ b/GreatSQL/Dockerfile @@ -14,13 +14,13 @@ GREATSQL_EXTRACT_DIR=/usr/local \ TMP_DIR=/tmp \ GREATSQL_PORT=3306 \ DEPS="libaio-devel numactl-devel xz openssl-devel openssl procps-ng util-linux" \ -GREATSQL_DOCKER_DOWNLOAD_URL="https://gitee.com/GreatSQL/GreatSQL-Docker/raw/greatsql-8.0.32-27/GreatSQL" \ +GREATSQL_DOCKER_DOWNLOAD_URL="https://gitee.com/GreatSQL/GreatSQL-Docker/raw/greatsql-8.4.4-4/GreatSQL" \ GREATSQL_INIT="greatsql-init.sh" \ GREATSQL_SHRINK="greatsql-shrink.sh" \ GREATSQL_TEST="greatsql-test.sql" \ GREATSQL_CNF="my.cnf" \ -GREATSQL_DOWNLOAD_URL="https://product.greatdb.com/GreatSQL-8.0.32-27" \ -GREATSQL_PKG="GreatSQL-8.0.32-27-Linux-glibc2.17-${TARGETARCH}-minimal" +GREATSQL_DOWNLOAD_URL="https://product.greatdb.com/GreatSQL-8.4.4-4" \ +GREATSQL_PKG="GreatSQL-8.4.4-4-Linux-glibc2.17-${TARGETARCH}-minimal" RUN microdnf install --nodocs -y ${DEPS} && \ microdnf update -y && \ diff --git a/GreatSQL/README.md b/GreatSQL/README.md index 7bb1131..fd01a22 100644 --- a/GreatSQL/README.md +++ b/GreatSQL/README.md @@ -10,12 +10,13 @@ ## 基本信息 - 维护者: GreatSQL(greatsql@greatdb.com) - 联系我们:greatsql@greatdb.com -- 最新版本:GreatSQL 8.0.32-27 -- 最后更新时间:2025-03-11 +- 最新版本:GreatSQL 8.4.4-4 +- 最后更新时间:2025-10-15 ## 支持哪些tag - [latest](https://hub.docker.com/layers/greatsql/greatsql/latest/images/sha256-0b524a865bef665444c778976a88e25cf7d448a18aeeac332f94a59ef27e8fdb) +- [8.4.4-4](https://hub.docker.com/layers/greatsql/greatsql/8.4.4-4/images/sha256-0b524a865bef665444c778976a88e25cf7d448a18aeeac332f94a59ef27e8fdb) - [8.0.32-27](https://hub.docker.com/layers/greatsql/greatsql/8.0.32-27/images/sha256-0b524a865bef665444c778976a88e25cf7d448a18aeeac332f94a59ef27e8fdb) - [8.0.32-26](https://hub.docker.com/layers/greatsql/greatsql/8.0.32-26/images/sha256-1f735f42aecdf4ee5c65699b228ce520a79f4d2e6b4fbaaddb607babcf604f0d) - [8.0.32-25](https://hub.docker.com/layers/greatsql/greatsql/8.0.32-25/images/sha256-6a01d0b1b9107b286601249202803da5b08e9f729b8727f691ce423928994eef) @@ -33,7 +34,7 @@ docker pull greatsql/greatsql 还可以指定具体版本号 ```shell -docker pull greatsql/greatsql:8.0.32-27 +docker pull greatsql/greatsql:8.4.4-4 ``` 如果无法从hub.docker.com拉取,可以尝试从阿里云ACR或腾讯云TCR拉取,例如: @@ -105,20 +106,12 @@ $ docker exec -it greatsql bash [root@greatsql /]# mysql Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 34 -Server version: 8.0.32-27 GreatSQL, Release 27, Revision aa66a385910 -... -mysql Ver 8.0.32-27 for Linux on x86_64 (GreatSQL (GPL), Release 27, Revision aa66a385910) -... - -[root@GreatSQL][(none)]> \s -... -Server version: 8.0.32-27 GreatSQL, Release 27, Revision aa66a385910 ... [root@GreatSQL][(none)]> SELECT version(); +-----------+ | version() | +-----------+ -| 8.0.32-27 | +| 8.4.4 | +-----------+ 1 row in set (0.00 sec) @@ -252,9 +245,9 @@ $ mysql +---------------------------+--------------------------------------+-------------+-------------+--------------+-------------+----------------+----------------------------+ | CHANNEL_NAME | MEMBER_ID | MEMBER_HOST | MEMBER_PORT | MEMBER_STATE | MEMBER_ROLE | MEMBER_VERSION | MEMBER_COMMUNICATION_STACK | +---------------------------+--------------------------------------+-------------+-------------+--------------+-------------+----------------+----------------------------+ -| group_replication_applier | d17d165a-ab7a-11ec-a8c0-0242ac120002 | 172.18.0.2 | 3306 | ONLINE | PRIMARY | 8.0.32 | XCom | -| group_replication_applier | d28c3916-ab7a-11ec-ab60-0242ac120003 | 172.18.0.3 | 3306 | ONLINE | SECONDARY | 8.0.32 | XCom | -| group_replication_applier | d3dc6855-ab7a-11ec-98a0-0242ac120004 | 172.18.0.4 | 3306 | ONLINE | ARBITRATOR | 8.0.32 | XCom | +| group_replication_applier | d17d165a-ab7a-11ec-a8c0-0242ac120002 | 172.18.0.2 | 3306 | ONLINE | PRIMARY | 8.4.4 | XCom | +| group_replication_applier | d28c3916-ab7a-11ec-ab60-0242ac120003 | 172.18.0.3 | 3306 | ONLINE | SECONDARY | 8.4.4 | XCom | +| group_replication_applier | d3dc6855-ab7a-11ec-98a0-0242ac120004 | 172.18.0.4 | 3306 | ONLINE | ARBITRATOR | 8.4.4 | XCom | +---------------------------+--------------------------------------+-------------+-------------+--------------+-------------+----------------+----------------------------+ ``` 可以看到,一个三节点的MGR集群已自动构建完毕,并且其中还包含一个ARBITRATOR节点(仲裁节点/投票节点)。 @@ -354,9 +347,9 @@ $ mysql +---------------------------+--------------------------------------+-------------+-------------+--------------+-------------+----------------+----------------------------+ | CHANNEL_NAME | MEMBER_ID | MEMBER_HOST | MEMBER_PORT | MEMBER_STATE | MEMBER_ROLE | MEMBER_VERSION | MEMBER_COMMUNICATION_STACK | +---------------------------+--------------------------------------+-------------+-------------+--------------+-------------+----------------+----------------------------+ -| group_replication_applier | 9831bac0-30d4-11ee-8b65-0242ac120002 | 172.18.0.2 | 3306 | ONLINE | PRIMARY | 8.0.32 | XCom | -| group_replication_applier | 9907b1ae-30d4-11ee-8c66-0242ac120003 | 172.18.0.3 | 3306 | ONLINE | PRIMARY | 8.0.32 | XCom | -| group_replication_applier | 9a1ee7ca-30d4-11ee-8b93-0242ac120004 | 172.18.0.4 | 3306 | ONLINE | PRIMARY | 8.0.32 | XCom | +| group_replication_applier | 9831bac0-30d4-11ee-8b65-0242ac120002 | 172.18.0.2 | 3306 | ONLINE | PRIMARY | 8.4.4 | XCom | +| group_replication_applier | 9907b1ae-30d4-11ee-8c66-0242ac120003 | 172.18.0.3 | 3306 | ONLINE | PRIMARY | 8.4.4 | XCom | +| group_replication_applier | 9a1ee7ca-30d4-11ee-8b93-0242ac120004 | 172.18.0.4 | 3306 | ONLINE | PRIMARY | 8.4.4 | XCom | +---------------------------+--------------------------------------+-------------+-------------+--------------+-------------+----------------+----------------------------+ ``` 可以看到,一个三节点的MGR集群已自动构建完毕,运行模式为多主模式。 diff --git a/GreatSQL/greatsql-test.sql b/GreatSQL/greatsql-test.sql index 99cf322..8219ce3 100644 --- a/GreatSQL/greatsql-test.sql +++ b/GreatSQL/greatsql-test.sql @@ -1,6 +1,6 @@ -- -- greatsql-test.sql --- GreatSQL 主要功能特性自测脚本,适配版本:8.0.32-27 +-- GreatSQL 主要功能特性自测脚本,适配版本:8.4.4-4 -- -- -- 主要测试项 @@ -18,22 +18,20 @@ -- 当检查结果输出内容包含 NG(NOT GOOD缩写) 时,表示检查结果异常,需要人为再确认 -- -- CHANGELOG --- # 2025.03.31 --- 1. 升级到 GreatSQL 8.0.32-27 --- 2. 针对以下几个新特性做校验 --- * 新增高性能并行查询引擎Turbo --- * 升级Rapid引擎内核版本 --- * InnoDB Page支持zstd压缩 --- * 新增Binlog限速状态查看 +-- # 2025.10.15 +-- 1. 升级到 GreatSQL 8.4.4-4 +-- 2. 调整audit log filter测试方案 +-- 3. 修改相应的库名、表名 -- + SET NAMES utf8mb4; -- 1. 版本号 SELECT '--- 1. checking VERSION() ---' AS STAGE_1; -SELECT IF(@@version = '8.0.32-27', "OK: VERSION IS 8.0.32-27", "NG, VERSION IS NOT 8.0.32-27") AS '1.1 check: VERSION' FROM DUAL; +SELECT IF(@@version = '8.4.4-4', "OK: VERSION IS 8.4.4-4", "NG, VERSION IS NOT 8.4.4-4") AS '1.1 check: VERSION' FROM DUAL; SELECT ' ' FROM DUAL; -SELECT IF(@@version_comment LIKE '%GreatSQL%27%aa66a385910', "OK, Revision IS aa66a385910", "NG, Revision IS NOT aa66a385910") AS '1.2 check: VERSION_COMMENT' FROM DUAL; +SELECT IF(@@version_comment LIKE '%GreatSQL%4%d73de75905d', "OK, Revision IS d73de75905d", "NG, Revision IS NOT d73de75905d") AS '1.2 check: VERSION_COMMENT' FROM DUAL; SELECT ' ' FROM DUAL; SELECT ' ' FROM DUAL; @@ -42,11 +40,11 @@ SELECT ' ' FROM DUAL; SELECT '--- 2. checking CREATE NEW DB & TABLE, INSERT & SELECT ROWS & Oracle compatibility ---' AS STAGE_2; -- CREATE DB & TABLE -CREATE DATABASE IF NOT EXISTS greatsql_803227 CHARACTER SET utf8mb4; -USE greatsql_803227; +CREATE DATABASE IF NOT EXISTS greatsql_8444 CHARACTER SET utf8mb4; +USE greatsql_8444; -DROP TABLE IF EXISTS t_803227; -CREATE TABLE t_803227( +DROP TABLE IF EXISTS t_8444; +CREATE TABLE t_8444( id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, c1 CLOB NOT NULL, c2 VARCHAR2(30) NOT NULL DEFAULT '', @@ -55,7 +53,7 @@ c4 PLS_INTEGER UNSIGNED NOT NULL DEFAULT 0 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- INSERT ROWS -INSERT INTO t_803227 VALUES +INSERT INTO t_8444 VALUES (1, rand(), rand(), ROUND(RAND()*1024000), ROUND(RAND()*1024000)), (2, rand(), rand(), ROUND(RAND()*1024000), ROUND(RAND()*1024000)), (4, rand(), rand(), ROUND(RAND()*1024000), ROUND(RAND()*1024000)), @@ -68,14 +66,14 @@ SELECT ' ' FROM DUAL; -- 3. Oracle语法 -SELECT '--- 3. checking SELECT ANY/ALL FROM t_803227 ---' AS STAGE_3; +SELECT '--- 3. checking SELECT ANY/ALL FROM t_8444 ---' AS STAGE_3; -- ALL Syntax -SELECT COUNT(*) INTO @ROWS FROM t_803227 WHERE id < ALL(4,8,16); +SELECT COUNT(*) INTO @ROWS FROM t_8444 WHERE id < ALL(4,8,16); SELECT IF(@ROWS = 2, 'OK, FOUND 2 ROWS', CONCAT('NG, FOUND ', @ROWS, ' ROWS')) AS '3.1 check: FOUND_ROWS(ALL)' FROM DUAL; SELECT ' ' FROM DUAL; -- ANY Syntax -SELECT COUNT(*) INTO @ROWS FROM t_803227 WHERE id < ANY(4,8,16); +SELECT COUNT(*) INTO @ROWS FROM t_8444 WHERE id < ANY(4,8,16); SELECT IF(@ROWS = 4, 'OK, FOUND 4 ROWS', CONCAT('NG, FOUND ', @ROWS, ' ROWS')) AS '3.2 check: FOUND_ROWS(ANY)' FROM DUAL; SELECT ' ' FROM DUAL; @@ -120,15 +118,15 @@ SELECT ' ' FROM DUAL; SELECT '4. check: EXPLAIN SELECT USING Turbo' FROM DUAL; -DROP TABLE IF EXISTS t_803227; -CREATE TABLE t_803227( +DROP TABLE IF EXISTS t_8444; +CREATE TABLE t_8444( id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, c1 VARCHAR2(30) NOT NULL DEFAULT '', c2 PLS_INTEGER UNSIGNED NOT NULL DEFAULT 0 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- INSERT ROWS -INSERT INTO t_803227 VALUES +INSERT INTO t_8444 VALUES (1, rand(), ROUND(RAND()*1024000)), (2, rand(), ROUND(RAND()*1024000)), (4, rand(), ROUND(RAND()*1024000)), @@ -136,14 +134,14 @@ INSERT INTO t_803227 VALUES (16, rand(), ROUND(RAND()*1024000)), (32, rand(), ROUND(RAND()*1024000)); -EXPLAIN FORMAT=TREE SELECT /*+ SET_VAR(turbo_enable=ON) SET_VAR(turbo_cost_threshold=0) */ * FROM t_803227; +EXPLAIN FORMAT=TREE SELECT /*+ SET_VAR(turbo_enable=ON) SET_VAR(turbo_cost_threshold=0) */ * FROM t_8444; SELECT ' ' FROM DUAL; SELECT '4. UNINSTALL Turbo ENGINE' FROM DUAL; UNINSTALL PLUGIN turbo; -- DROP TABLE -DROP TABLE IF EXISTS t_803227; +DROP TABLE IF EXISTS t_8444; -- 5. Rapid引擎 SELECT '--- 4. checking RAPID ENGINE ---' AS STAGE_4; @@ -153,7 +151,8 @@ INSTALL PLUGIN Rapid SONAME 'ha_rapid.so'; SELECT IF(ENGINE = "Rapid", "OK, SUPPORT Rapid ENGINE", "NG, NOT SUPPORT Rapid ENGINE") AS '4.1 check: Rapid ENGINE' FROM information_schema.ENGINES WHERE ENGINE = 'Rapid' AND SUPPORT = 'YES'; SELECT ' ' FROM DUAL; -CREATE TABLE `t_803227_rapid` ( +DROP TABLE IF EXISTS `t_8444_rapid`; +CREATE TABLE IF NOT EXISTS `t_8444_rapid` ( `id` int unsigned NOT NULL AUTO_INCREMENT, `c1` int unsigned NOT NULL DEFAULT '0', `c2` varchar(30) NOT NULL DEFAULT '', @@ -161,10 +160,10 @@ CREATE TABLE `t_803227_rapid` ( ) ENGINE=InnoDB; -- SECONDARY_ENGINE -ALTER TABLE t_803227_rapid SECONDARY_ENGINE = rapid; +ALTER TABLE t_8444_rapid SECONDARY_ENGINE = rapid; -- INSERT ROWS -INSERT INTO t_803227_rapid VALUES +INSERT INTO t_8444_rapid VALUES (1, RAND()*1024000, RAND()*1024000), (2, RAND()*1024000, RAND()*1024000), (4, RAND()*1024000, RAND()*1024000), @@ -175,20 +174,21 @@ SELECT IF(ROW_COUNT() = 6, 'OK, INSERT 6 ROWS', CONCAT('NG, INSERT ', ROW_COUNT( SELECT ' ' FROM DUAL; -- SECONDARY_LOAD -ALTER TABLE t_803227_rapid SECONDARY_LOAD; +ALTER TABLE t_8444_rapid SECONDARY_LOAD; -SELECT IF(CREATE_OPTIONS = 'SECONDARY_ENGINE="rapid" SECONDARY_LOAD="1"', "OK, t_803227_rapid IS A Rapid TABLE", "NG, t_803227_rapid IS NOT A Rapid TABLE") AS '4.3 check: t_803227_rapid' FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'greatsql_803227' AND TABLE_NAME = 't_803227_rapid'; +SELECT IF(CREATE_OPTIONS = 'SECONDARY_ENGINE="rapid" SECONDARY_LOAD="1"', "OK, t_8444_rapid IS A Rapid TABLE", "NG, t_8444_rapid IS NOT A Rapid TABLE") AS '4.3 check: t_8444_rapid' FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'greatsql_8444' AND TABLE_NAME = 't_8444_rapid'; SELECT ' ' FROM DUAL; -- EXPLAIN SELECT '4.4 check: EXPLAIN SELECT FROM Rapid TABLE' FROM DUAL; -EXPLAIN SELECT /*+ SET_VAR(use_secondary_engine=2) SET_VAR(secondary_engine_cost_threshold=0) */ * FROM t_803227_rapid; +EXPLAIN SELECT /*+ SET_VAR(use_secondary_engine=2) SET_VAR(secondary_engine_cost_threshold=0) */ * FROM t_8444_rapid; SELECT ' ' FROM DUAL; -- FORCE USING Rapid ENGINE -SELECT /*+ SET_VAR(use_secondary_engine=1) SET_VAR(secondary_engine_cost_threshold=0) */ COUNT(*) INTO @ROWS FROM t_803227_rapid; +SELECT /*+ SET_VAR(use_secondary_engine=1) SET_VAR(secondary_engine_cost_threshold=0) */ COUNT(*) INTO @ROWS FROM t_8444_rapid; SELECT IF(@ROWS = 6, 'OK, FOUND 6 ROWS', CONCAT('NG, FOUND ', @ROWS, ' ROWS')) AS '4.4 check: FOUND ROWS FROM Rapid TABLE' FROM DUAL; SELECT ' ' FROM DUAL; +UNINSTALL PLUGIN rapid; -- 5. 并行LOAD DATA @@ -218,6 +218,8 @@ SELECT ' ' FROM DUAL; SELECT IF(VARIABLE_NAME = "clone_file_compress", "OK, SUPPORT Clone compressed", "NG, NOT SUPPORT Clone compressed") AS 'check: Clone compressed' FROM performance_schema.global_variables where variable_name = 'clone_file_compress'; SELECT ' ' FROM DUAL; SELECT ' ' FROM DUAL; +UNINSTALL COMPONENT "file://component_mysqlbackup"; +UNINSTALL PLUGIN clone; -- 7. MGR特性 SELECT '--- 7. checking MGR ---' AS STAGE_7; @@ -247,12 +249,15 @@ SELECT ' ' FROM DUAL; SELECT IF(VARIABLE_NAME = "greatdb_ha_mgr_read_vip_floating_type", "OK, SUPPORT greatdb_ha vip_floating", "NG, NOT SUPPORT greatdb_ha vip_floating") AS '7.5 check: greatdb_ha vip_floating' FROM performance_schema.global_variables where variable_name = 'greatdb_ha_mgr_read_vip_floating_type'; SELECT ' ' FROM DUAL; SELECT ' ' FROM DUAL; +UNINSTALL PLUGIN greatdb_ha; +UNINSTALL PLUGIN group_replication; -- 8. 安全特性检查 -- 支持审计日志写表 & 用户的登录信息记录 -- basedir=/usr, REPLACE IF NEEDED -SOURCE /usr/local/GreatSQL/share/install_audit_log.sql; +USE mysql; +SOURCE /usr/local/GreatSQL/share/audit_log_filter_linux_install.sql SELECT IF(VARIABLE_NAME = "audit_log_to_table", "OK, SUPPORT audit_log_to_table", "NG, NOT SUPPORT audit_log_to_table") AS '8.1 check: audit_log_to_table' FROM performance_schema.global_variables where variable_name = 'audit_log_to_table'; SELECT ' ' FROM DUAL; @@ -265,6 +270,7 @@ SOURCE /usr/local/GreatSQL/share/sys_masking.sql; SELECT IF(COUNT(*)=4, "OK, SUPPORT data masking", "NG, NOT SUPPORT data masking") AS '8.3 check: data masking' FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='sys_masking'; SELECT ' ' FROM DUAL; SELECT ' ' FROM DUAL; +UNINSTALL COMPONENT "file://component_audit_log_filter"; -- 9. 优化功能检查 @@ -286,20 +292,20 @@ SELECT ' ' FROM DUAL; -- 10. InnoDB Page压缩支持zstd SELECT '--- 11. checking InnoDB Page COMPRSSION USING Zstd ---' AS STAGE_11; -USE greatsql_803227; +USE greatsql_8444; -DROP TABLE IF EXISTS t_803227; -CREATE TABLE t_803227( +DROP TABLE IF EXISTS t_8444; +CREATE TABLE t_8444( id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, c1 CLOB NOT NULL, c2 VARCHAR2(30) NOT NULL DEFAULT '', c3 NUMBER UNSIGNED NOT NULL DEFAULT 0, c4 PLS_INTEGER UNSIGNED NOT NULL DEFAULT 0 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMPRESSION="zstd"; -SELECT IF(CREATE_OPTIONS = 'COMPRESSION="zstd"', "OK, InnoDB Page COMPONENT USING Zstd", "NG, NOT SUPPORT InnoDB Page COMPONENT USING Zstd") AS 'check: InnoDB Page COMPONENT USING Zstd' FROM information_schema.TABLES WHERE TABLE_SCHEMA='greatsql_803227' AND TABLE_NAME='t_803227'; +SELECT IF(CREATE_OPTIONS = 'COMPRESSION="zstd"', "OK, InnoDB Page COMPONENT USING Zstd", "NG, NOT SUPPORT InnoDB Page COMPONENT USING Zstd") AS 'check: InnoDB Page COMPONENT USING Zstd' FROM information_schema.TABLES WHERE TABLE_SCHEMA='greatsql_8444' AND TABLE_NAME='t_8444'; SELECT ' ' FROM DUAL; SELECT ' ' FROM DUAL; -- 11. 清理 SELECT '--- 8. clean up ---' AS STAGE_8; -DROP DATABASE IF EXISTS greatsql_803227; +DROP DATABASE IF EXISTS greatsql_8444; diff --git a/GreatSQL/my.cnf b/GreatSQL/my.cnf index 8802190..ae4f498 100644 --- a/GreatSQL/my.cnf +++ b/GreatSQL/my.cnf @@ -1,176 +1,176 @@ # -# my.cnf example for GreatSQL 8.0.32-27 +# my.cnf example for GreatSQL 8.4.4-4 # # 下面参数选项设置仅作为参考 # [client] -socket = /data/GreatSQL/mysql.sock +socket=/data/GreatSQL/mysql.sock [mysql] loose-skip-binary-as-hex -prompt = "(\\D)[\\u@GreatSQL][\\d]> " +prompt="(\\D)[\\u@GreatSQL][\\d]> " no-auto-rehash [mysqld] -user = mysql -port = 3306 -server_id = MYSQL_SID -basedir = /usr/local/GreatSQL -datadir = /data/GreatSQL -socket = /data/GreatSQL/mysql.sock -pid-file = mysql.pid -character-set-server = UTF8MB4 -skip_name_resolve = ON -default_time_zone = "+8:00" -bind_address = "0.0.0.0" -secure_file_priv = /data/GreatSQL -lower_case_table_names = LOWER_CASE_TABLE_NAMES +user=mysql +port=3306 +server_id=MYSQL_SID +basedir=/usr/local/GreatSQL +datadir=/data/GreatSQL +socket=/data/GreatSQL/mysql.sock +pid-file=mysql.pid +character-set-server=UTF8MB4 +skip_name_resolve=ON +default_time_zone="+8:00" +bind_address="0.0.0.0" +secure_file_priv=/data/GreatSQL +lower_case_table_names=LOWER_CASE_TABLE_NAMES +mysql_native_password=ON # Performance -lock_wait_timeout = 3600 -open_files_limit = 65535 -back_log = 1024 -max_connections = 512 -max_connect_errors = 1000000 -table_open_cache = 1024 -table_definition_cache = 1024 -sort_buffer_size = 4M -join_buffer_size = 4M -read_buffer_size = 8M -read_rnd_buffer_size = 4M -bulk_insert_buffer_size = 64M -thread_cache_size = 768 -interactive_timeout = 600 -wait_timeout = 600 -tmp_table_size = 32M -max_heap_table_size = 32M -max_allowed_packet = 64M -net_buffer_shrink_interval = 180 -sql_generate_invisible_primary_key = ON -loose-lock_ddl_polling_mode = ON -loose-lock_ddl_polling_runtime = 200 +lock_wait_timeout=3600 +open_files_limit=65535 +back_log=1024 +max_connections=512 +max_connect_errors=1000000 +table_open_cache=1024 +table_definition_cache=1024 +sort_buffer_size=4M +join_buffer_size=4M +read_buffer_size=8M +read_rnd_buffer_size=4M +bulk_insert_buffer_size=64M +thread_cache_size=768 +interactive_timeout=600 +wait_timeout=600 +tmp_table_size=32M +max_heap_table_size=32M +max_allowed_packet=64M +net_buffer_shrink_interval=180 +sql_generate_invisible_primary_key=ON +loose-lock_ddl_polling_mode=ON +loose-lock_ddl_polling_runtime=200 # Logs -log_timestamps = SYSTEM -log_error = error.log -log_error_verbosity = 3 -slow_query_log = ON -log_slow_extra = ON -slow_query_log_file = slow.log -long_query_time = 0.01 -log_queries_not_using_indexes = ON -log_throttle_queries_not_using_indexes = 60 -min_examined_row_limit = 100 -log_slow_admin_statements = ON -log_slow_replica_statements = ON -log_slow_verbosity = FULL -log_bin = binlog -binlog_format = ROW -sync_binlog = 1 -binlog_cache_size = 4M -max_binlog_cache_size = 6G -max_binlog_size = 1G -binlog_space_limit = 500G -binlog_rows_query_log_events = ON -binlog_expire_logs_seconds = 604800 -binlog_checksum = CRC32 -gtid_mode = ON -enforce_gtid_consistency = ON +log_timestamps=SYSTEM +log_error=error.log +log_error_verbosity=3 +slow_query_log=ON +log_slow_extra=ON +slow_query_log_file=slow.log +long_query_time=0.01 +log_queries_not_using_indexes=ON +log_throttle_queries_not_using_indexes=60 +min_examined_row_limit=100 +log_slow_admin_statements=ON +log_slow_replica_statements=ON +log_slow_verbosity=FULL +log_bin=binlog +binlog_format=ROW +sync_binlog=1 +binlog_cache_size=4M +max_binlog_cache_size=6G +max_binlog_size=1G +binlog_space_limit=500G +binlog_rows_query_log_events=ON +binlog_expire_logs_seconds=604800 +binlog_checksum=CRC32 +gtid_mode=ON +enforce_gtid_consistency=ON # Replication -relay-log = relaylog -relay_log_recovery = ON -replica_parallel_type = LOGICAL_CLOCK -replica_parallel_workers = 4 -binlog_transaction_dependency_tracking = WRITESET -replica_preserve_commit_order = ON -replica_checkpoint_period = 2 -loose-rpl_read_binlog_speed_limit = 100 +relay-log=relaylog +relay_log_recovery=ON +replica_parallel_type=LOGICAL_CLOCK +replica_parallel_workers=4 +replica_preserve_commit_order=ON +replica_checkpoint_period=2 +loose-rpl_read_binlog_speed_limit=100 # Disalbe InnoDB PQ -loose-force_parallel_execute = OFF +loose-force_parallel_execute=OFF # Parallel LOAD DATA -loose-gdb_parallel_load = ON -loose-innodb_optimize_no_pk_parallel_load = ON +loose-gdb_parallel_load=ON +loose-innodb_optimize_no_pk_parallel_load=ON # Rapid -#loose-plugin_load_add = 'ha_rapid.so' -loose-rapid_memory_limit = 128M -loose-rapid_worker_threads = 4 -loose-rapid_hash_table_memory_limit = 10 -loose-secondary_engine_parallel_load_workers = 4 +#loose-plugin_load_add='ha_rapid.so' +loose-rapid_memory_limit=128M +loose-rapid_worker_threads=4 +loose-rapid_hash_table_memory_limit=10 +loose-secondary_engine_parallel_load_workers=4 # Clone -loose-plugin_load_add = 'mysql_clone.so' +loose-plugin_load_add='mysql_clone.so' # MGR -loose-plugin_load_add = 'group_replication.so' -loose-group_replication_group_name = MYSQL_MGR_NAME -loose-group_replication_view_change_uuid = MYSQL_MGR_VIEWID -loose-group_replication_local_address = MYSQL_MGR_LOCAL -loose-group_replication_group_seeds = MYSQL_MGR_SEEDS -loose-group_replication_communication_stack = "XCOM" -loose-group_replication_recovery_use_ssl = OFF -loose-group_replication_ssl_mode = DISABLED -loose-group_replication_start_on_boot = START_MGR -loose-group_replication_bootstrap_group = BOOTSTRAP_MGR -loose-group_replication_exit_state_action = READ_ONLY -loose-group_replication_flow_control_mode = "DISABLED" -loose-group_replication_single_primary_mode = SINGLE_PRIMARY -loose-group_replication_enforce_update_everywhere_checks = EVERYWHERE_CHECKS -loose-group_replication_majority_after_mode = ON -loose-group_replication_communication_max_message_size = 10M -loose-group_replication_arbitrator = MYSQL_MGR_ARBITRATOR -loose-group_replication_single_primary_fast_mode = FAST_MODE -loose-group_replication_request_time_threshold = 100 -loose-group_replication_primary_election_mode = GTID_FIRST -loose-group_replication_unreachable_majority_timeout = 0 -loose-group_replication_member_expel_timeout = 5 -loose-group_replication_autorejoin_tries = 288 -loose-group_replication_recovery_get_public_key = ON -loose-group_replication_donor_threshold = 100 +loose-plugin_load_add='group_replication.so' +loose-group_replication_group_name=MYSQL_MGR_NAME +loose-group_replication_view_change_uuid=MYSQL_MGR_VIEWID +loose-group_replication_local_address=MYSQL_MGR_LOCAL +loose-group_replication_group_seeds=MYSQL_MGR_SEEDS +loose-group_replication_communication_stack="XCOM" +loose-group_replication_recovery_use_ssl=OFF +loose-group_replication_ssl_mode=DISABLED +loose-group_replication_start_on_boot=START_MGR +loose-group_replication_bootstrap_group=BOOTSTRAP_MGR +loose-group_replication_exit_state_action=READ_ONLY +loose-group_replication_flow_control_mode="DISABLED" +loose-group_replication_single_primary_mode=SINGLE_PRIMARY +loose-group_replication_enforce_update_everywhere_checks=EVERYWHERE_CHECKS +loose-group_replication_majority_after_mode=ON +loose-group_replication_communication_max_message_size=10M +loose-group_replication_arbitrator=MYSQL_MGR_ARBITRATOR +loose-group_replication_single_primary_fast_mode=FAST_MODE +loose-group_replication_request_time_threshold=100 +loose-group_replication_primary_election_mode=GTID_FIRST +loose-group_replication_unreachable_majority_timeout=0 +loose-group_replication_member_expel_timeout=5 +loose-group_replication_autorejoin_tries=288 +loose-group_replication_recovery_get_public_key=ON +loose-group_replication_donor_threshold=100 # greatdb_ha -#loose-plugin_load_add = 'greatdb_ha.so' -#loose-greatdb_ha_enable_mgr_vip = OFF -#loose-greatdb_ha_mgr_vip_nic = 'eth0' -#loose-greatdb_ha_mgr_vip_ip = '172.16.0.252' -#loose-greatdb_ha_mgr_vip_mask = '255.255.255.0' -#loose-greatdb_ha_port = 33062 -#loose-greatdb_ha_mgr_read_vip_ips = "172.16.0.251,172.16.0.252" -#loose-greatdb_ha_mgr_read_vip_floating_type = "TO_ANOTHER_SECONDARY" -#loose-greatdb_ha_send_arp_packge_times = 5 -#loose-greatdb_ha_mgr_exit_primary_kill_connection_mode = OFF -report_host = REPORT_HOST -report_port = 3306 +#loose-plugin_load_add='greatdb_ha.so' +#loose-greatdb_ha_enable_mgr_vip=OFF +#loose-greatdb_ha_mgr_vip_nic='eth0' +#loose-greatdb_ha_mgr_vip_ip='172.16.0.252' +#loose-greatdb_ha_mgr_vip_mask='255.255.255.0' +#loose-greatdb_ha_port=33062 +#loose-greatdb_ha_mgr_read_vip_ips="172.16.0.251,172.16.0.252" +#loose-greatdb_ha_mgr_read_vip_floating_type="TO_ANOTHER_SECONDARY" +#loose-greatdb_ha_send_arp_packge_times=5 +#loose-greatdb_ha_mgr_exit_primary_kill_connection_mode=OFF +report_host=REPORT_HOST +report_port=3306 # InnoDB -innodb_buffer_pool_size = MYSQL_IBP -innodb_buffer_pool_instances = 8 -innodb_data_file_path = ibdata1:12M:autoextend -innodb_flush_log_at_trx_commit = 1 -innodb_log_buffer_size = 32M -innodb_redo_log_capacity = 128M -innodb_doublewrite_files = 2 -innodb_max_undo_log_size = 4G -innodb_io_capacity = 4000 -innodb_io_capacity_max = 8000 -innodb_open_files = 65534 -innodb_flush_method = O_DIRECT -innodb_lru_scan_depth = 4000 -innodb_lock_wait_timeout = 10 -innodb_rollback_on_timeout = ON -innodb_print_all_deadlocks = ON -innodb_online_alter_log_max_size = 4G -innodb_print_ddl_logs = ON -innodb_status_file = ON -innodb_status_output = OFF -innodb_status_output_locks = ON -innodb_sort_buffer_size = 64M -innodb_adaptive_hash_index = OFF -innodb_numa_interleave = OFF -innodb_spin_wait_delay = 20 -innodb_print_lock_wait_timeout_info = ON -kill_idle_transaction = 300 -innodb_data_file_async_purge = ON +innodb_buffer_pool_size=MYSQL_IBP +innodb_buffer_pool_instances=8 +innodb_data_file_path=ibdata1:12M:autoextend +innodb_flush_log_at_trx_commit=1 +innodb_log_buffer_size=32M +innodb_redo_log_capacity=128M +innodb_doublewrite_files=2 +innodb_max_undo_log_size=4G +innodb_io_capacity=4000 +innodb_io_capacity_max=8000 +innodb_open_files=65534 +innodb_flush_method=O_DIRECT +innodb_lru_scan_depth=4000 +innodb_lock_wait_timeout=10 +innodb_rollback_on_timeout=ON +innodb_print_all_deadlocks=ON +innodb_online_alter_log_max_size=4G +innodb_print_ddl_logs=ON +innodb_status_file=ON +innodb_status_output=OFF +innodb_status_output_locks=ON +innodb_sort_buffer_size=64M +innodb_adaptive_hash_index=OFF +innodb_numa_interleave=OFF +innodb_spin_wait_delay=20 +innodb_print_lock_wait_timeout_info=ON +kill_idle_transaction=300 +innodb_data_file_async_purge=ON From bd485f5edc06847d4f960b8feae88fb027bcd1c5 Mon Sep 17 00:00:00 2001 From: Yejr Date: Wed, 15 Oct 2025 20:10:36 +0800 Subject: [PATCH 14/30] =?UTF-8?q?=E6=9B=B4=E6=96=B0GreatSQL=208.4.4-4=20Do?= =?UTF-8?q?cker=E9=93=BE=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GreatSQL/README.md | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/GreatSQL/README.md b/GreatSQL/README.md index fd01a22..28ba1bf 100644 --- a/GreatSQL/README.md +++ b/GreatSQL/README.md @@ -15,15 +15,9 @@ ## 支持哪些tag -- [latest](https://hub.docker.com/layers/greatsql/greatsql/latest/images/sha256-0b524a865bef665444c778976a88e25cf7d448a18aeeac332f94a59ef27e8fdb) -- [8.4.4-4](https://hub.docker.com/layers/greatsql/greatsql/8.4.4-4/images/sha256-0b524a865bef665444c778976a88e25cf7d448a18aeeac332f94a59ef27e8fdb) -- [8.0.32-27](https://hub.docker.com/layers/greatsql/greatsql/8.0.32-27/images/sha256-0b524a865bef665444c778976a88e25cf7d448a18aeeac332f94a59ef27e8fdb) -- [8.0.32-26](https://hub.docker.com/layers/greatsql/greatsql/8.0.32-26/images/sha256-1f735f42aecdf4ee5c65699b228ce520a79f4d2e6b4fbaaddb607babcf604f0d) -- [8.0.32-25](https://hub.docker.com/layers/greatsql/greatsql/8.0.32-25/images/sha256-6a01d0b1b9107b286601249202803da5b08e9f729b8727f691ce423928994eef) -- [8.0.32-24](https://hub.docker.com/layers/greatsql/greatsql/8.0.32-24/images/sha256-0d1ee8a01e4dec5d3698053319978c1817ca455eb6a11de9fa7e13b747fa9f3e) -- [8.0.25-16](https://hub.docker.com/layers/greatsql/greatsql/greatsql/8.0.25-16/images/sha256-03969daaaaaeb0f51dde0c9e92ef327302607cdde3afbe5c2b071098000c52c1) -- [8.0.32-24-arch64](https://hub.docker.com/layers/greatsql/greatsql/8.0.32-24-aarch64/images/sha256-97dfa7074a1c5b2e0355fcf5fc829e8074edca6db7c2e528059786fb0c48a523) -- [8.0.25-16-aarch64](https://hub.docker.com/layers/greatsql/greatsql/8.0.25-16-aarch64/images/sha256-c4664d2b84025ed2487d0aecb6090ab9bb0f7ee2033afd9a079ea4f1f9f82b52) +- [latest](https://hub.docker.com/repository/docker/greatsql/greatsql/tags/latest/sha256:e90496c2c83c02e8f8f6c27327bd9a0e620556961dff3f906058aad7e8c5564e) +- [8.4.4-4](https://hub.docker.com/repository/docker/greatsql/greatsql/tags/8.4.4-4/sha256:e90496c2c83c02e8f8f6c27327bd9a0e620556961dff3f906058aad7e8c5564e) +- [8.0.32-27](https://hub.docker.com/repository/docker/greatsql/greatsql/tags/8.0.32-27/sha256:6169b1a98eaa4a2579315e30681714c102ac1d6e9881bac5606ebec67c5b7b3b) 拉取GreatSQL镜像 @@ -433,7 +427,7 @@ MySQL 8.0.26开始,可以为view change单独指定一个GTID前缀,避免 ## 文件介绍 - CHANGELOG.md,更新历史 - docker-compose,利用docker-compose拉起的示例文件 -- Dockerfile,用于构建GreatSQL Shell Docker环境 +- Dockerfile,用于构建GreatSQL Docker环境 - greatsql-init.sh,构建镜像初始化脚本 - greatsql-shrink.sh,在镜像中裁剪非必要文件脚本 - greatsql-test.sql,可执行GreatSQL自测试的脚本 From 43b259746f88bc57b6fc8f4bb949469917c61cf7 Mon Sep 17 00:00:00 2001 From: Yejr Date: Thu, 16 Oct 2025 09:44:11 +0800 Subject: [PATCH 15/30] =?UTF-8?q?GreatSQL-Build=E5=8D=87=E7=BA=A7=E5=88=B0?= =?UTF-8?q?8.4.4-4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GreatSQL-Build/CHANGELOG.md | 8 ++++---- GreatSQL-Build/Dockerfile | 2 +- GreatSQL-Build/README.md | 14 ++++++-------- GreatSQL-Build/greatsql-setenv.sh | 8 ++++---- README.md | 2 -- 5 files changed, 15 insertions(+), 19 deletions(-) diff --git a/GreatSQL-Build/CHANGELOG.md b/GreatSQL-Build/CHANGELOG.md index f77cc0f..dffaa7c 100644 --- a/GreatSQL-Build/CHANGELOG.md +++ b/GreatSQL-Build/CHANGELOG.md @@ -1,6 +1,6 @@ -# 8.0.32-27 更新日志 +# 8.4.4-4 更新日志 -## 2025.3.31 -* 更新到GreatSQL 8.0.32-27 +## 2025.10.16 +* 更新到GreatSQL 8.4.4-4 -[8.0.32-27]: https://gitee.com/GreatSQL/GreatSQL-Docker/tree/greatsql-8.0.32-27/GreatSQL-Build +[8.4.4-4]: https://gitee.com/GreatSQL/GreatSQL-Docker/tree/greatsql-8.4.4-4/GreatSQL-Build diff --git a/GreatSQL-Build/Dockerfile b/GreatSQL-Build/Dockerfile index 4b582ab..7ba73fc 100644 --- a/GreatSQL-Build/Dockerfile +++ b/GreatSQL-Build/Dockerfile @@ -11,7 +11,7 @@ ARG TARGETARCH \ OPT_DIR=/opt \ MYSQL_UID=3306 \ MYSQL_USER=mysql \ -GREATSQL_BUILD_DOWNLOAD_URL="https://gitee.com/GreatSQL/GreatSQL-Docker/raw/greatsql-8.0.32-27/GreatSQL-Build" \ +GREATSQL_BUILD_DOWNLOAD_URL="https://gitee.com/GreatSQL/GreatSQL-Docker/raw/greatsql-8.4.4-4/GreatSQL-Build" \ GREATSQL_ENV="greatsql-setenv.sh" \ GREATSQL_BUILD_INIT="greatsql_build_init.sh" diff --git a/GreatSQL-Build/README.md b/GreatSQL-Build/README.md index fe7faf6..dd4c9b5 100644 --- a/GreatSQL-Build/README.md +++ b/GreatSQL-Build/README.md @@ -10,15 +10,13 @@ ## 基本信息 - 维护者: GreatSQL(greatsql@greatdb.com) - 联系我们:greatsql@greatdb.com -- 最新版本:GreatSQL 8.0.32-27 -- 最后更新时间:2025-03-11 +- 最新版本:GreatSQL 8.4.4-4 +- 最后更新时间:2025-10-16 ## 支持哪些tag - [latest](https://hub.docker.com/layers/greatsql/greatsql_build/latest/images/sha256-16c3b1f7336578e9ad96593d8e3b02de032ede456a5f4681f11cff538673bdd8) - [8.0.32-27](https://hub.docker.com/layers/greatsql/greatsql_build/8.0.32-27/images/sha256-16c3b1f7336578e9ad96593d8e3b02de032ede456a5f4681f11cff538673bdd8) -- [8.0.32-26](https://hub.docker.com/layers/greatsql/greatsql_build/8.0.32-26/images/sha256-a8bea01ea86b77866f8e4739859537b6f4b5060178ae06552e6fad4607c4e0cf) -- [8.0.32-25](https://hub.docker.com/layers/greatsql/greatsql/8.0.32-25/images/sha256-6a01d0b1b9107b286601249202803da5b08e9f729b8727f691ce423928994eef) 拉取GreatSQL-Build镜像 @@ -29,7 +27,7 @@ docker pull greatsql/greatsql_build 还可以指定具体版本号 ```shell -docker pull greatsql/greatsql_build:8.0.32-27 +docker pull greatsql/greatsql_build:8.4.4-4 ``` 如果无法从hub.docker.com拉取,可以尝试从阿里云ACR或腾讯云TCR拉取,例如: @@ -112,8 +110,8 @@ sh-4.4# sh ./greatsql_build_init.sh 3.3 make dynamic link for GreatSQL 4. greatsql build completed! -drwxrwxr-x 13 mysql mysql 293 Mar 26 13:27 GreatSQL-8.0.32-27-ol-glibc2.28-x86_64 -/opt/GreatSQL-8.0.32-27-ol-glibc2.28-x86_64/bin/mysqld Ver 8.0.32-27 for Linux on x86_64 (GreatSQL, Release 27, Revision aa66a385910) +drwxrwxr-x 13 mysql mysql 293 Oct 11 11:54 GreatSQL-8.4.4-4-ol-glibc2.28-x86_64 +/opt/GreatSQL-8.4.4-4-ol-glibc2.28-x86_64/bin/mysqld Ver 8.4.4-4 for Linux on x86_64 (GreatSQL, Release 4, Revision d73de75905d) 5. remove files and clean up ``` @@ -121,7 +119,7 @@ drwxrwxr-x 13 mysql mysql 293 Mar 26 13:27 GreatSQL-8.0.32-27-ol-glibc2.28 可以看到已经完成编译,可以将容器中编译好的二进制包文件拷贝到宿主机上,例如: ```shell -docker cp greatsql_build:/opt/GreatSQL-8.0.32-27-ol-glibc2.28-x86_64 /usr/local/ +docker cp greatsql_build:/opt/GreatSQL-8.4.4-4-ol-glibc2.28-x86_64 /usr/local/ ``` 如果宿主机环境也是 OracleLinux/CentOS x86_64 的话,这就可以在宿主机环境下直接使用该二进制文件包了。 diff --git a/GreatSQL-Build/greatsql-setenv.sh b/GreatSQL-Build/greatsql-setenv.sh index 499a42d..67886ca 100755 --- a/GreatSQL-Build/greatsql-setenv.sh +++ b/GreatSQL-Build/greatsql-setenv.sh @@ -12,10 +12,10 @@ else fi MAJOR_VERSION=8 -MINOR_VERSION=0 -PATCH_VERSION=32 -RELEASE=27 -REVISION=aa66a385910 +MINOR_VERSION=4 +PATCH_VERSION=4 +RELEASE=4 +REVISION=d73de75905d OPT_DIR=/opt GLIBC=`ldd --version | head -n 1 | awk '{print $NF}'` ARCH=`uname -p` diff --git a/README.md b/README.md index 877707a..febbb3e 100644 --- a/README.md +++ b/README.md @@ -16,8 +16,6 @@ Dockerfiles可用于自定义和构建docker映像。[戳此阅读更多关于Do ## 基本信息 - 维护者: GreatSQL(greatsql@greatdb.com) - 联系人: greatsql@greatdb.com -- 最新版本:GreatSQL 8.0.32-27 -- 最后更新时间:2025-03-11 ## 镜像仓库列表 - GreatSQL,构建GreatSQL运行环境的Docker镜像 From de6e9e39d7acc510250d7336bfb4996de657387f Mon Sep 17 00:00:00 2001 From: Yejr Date: Fri, 17 Oct 2025 10:01:15 +0800 Subject: [PATCH 16/30] =?UTF-8?q?=E6=9B=B4=E6=96=B0boost=E6=BA=90=EF=BC=8C?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E9=A2=84=E5=AE=89=E8=A3=85=E8=BD=AF=E4=BB=B6?= =?UTF-8?q?=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GreatSQL-Build/CHANGELOG.md | 2 ++ GreatSQL-Build/README.md | 2 ++ GreatSQL-Build/greatsql-setenv.sh | 12 +++++++----- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/GreatSQL-Build/CHANGELOG.md b/GreatSQL-Build/CHANGELOG.md index dffaa7c..880f24a 100644 --- a/GreatSQL-Build/CHANGELOG.md +++ b/GreatSQL-Build/CHANGELOG.md @@ -2,5 +2,7 @@ ## 2025.10.16 * 更新到GreatSQL 8.4.4-4 +* 修改boost下载源 +* 安装依赖增加libatomic [8.4.4-4]: https://gitee.com/GreatSQL/GreatSQL-Docker/tree/greatsql-8.4.4-4/GreatSQL-Build diff --git a/GreatSQL-Build/README.md b/GreatSQL-Build/README.md index dd4c9b5..a4f015f 100644 --- a/GreatSQL-Build/README.md +++ b/GreatSQL-Build/README.md @@ -7,6 +7,8 @@ 适用于 OracleLinux/CentOS x86_64/aarch64 环境,更多环境适配请自行修改Dockerfile及相关脚本中的参数。 +**提示**:本项目将不再更新,如果有需要编译 GreatSQL 源码,请参考文档 [编译源码安装](https://greatsql.cn/docs/4-install-guide/6-install-with-source-code.html)。 + ## 基本信息 - 维护者: GreatSQL(greatsql@greatdb.com) - 联系我们:greatsql@greatdb.com diff --git a/GreatSQL-Build/greatsql-setenv.sh b/GreatSQL-Build/greatsql-setenv.sh index 67886ca..25f82d7 100755 --- a/GreatSQL-Build/greatsql-setenv.sh +++ b/GreatSQL-Build/greatsql-setenv.sh @@ -28,7 +28,8 @@ GREATSQL_SRC=greatsql-${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}-${RELEA GREATSQL_BUILD_DOWNLOAD_URL="https://gitee.com/GreatSQL/GreatSQL-Docker/raw/greatsql-${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}-${RELEASE}/deppkgs" GREATSQL_MAKESH_DOWNLOAD_URL="https://gitee.com/GreatSQL/GreatSQL-Docker/raw/greatsql-${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}-${RELEASE}/GreatSQL-Build" GREATSQL_SRC_DOWNLOAD_URL="https://product.greatdb.com/GreatSQL-${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}-${RELEASE}" -BOOST_SRC_DOWNLOAD_URL="https://archives.boost.io/release/1.77.0/source/" +#BOOST_SRC_DOWNLOAD_URL="https://archives.boost.io/release/1.77.0/source/" +BOOST_SRC_DOWNLOAD_URL="https://sourceforge.net/projects/boost/files/boost/1.77.0/" BOOST="boost_1_77_0" PATCHELF="patchelf-0.14.5" GREATSQL_ENV="greatsql-setenv.sh" @@ -44,7 +45,8 @@ if [ ${ARCH} = "x86_64" ] ; then CMAKE_EXE_LINKER_FLAGS=" -ljemalloc " fi -DEPS="autoconf automake binutils bison bzip2 cmake cyrus-sasl-devel cyrus-sasl-scram gcc-c++ \ -gcc-toolset-11 gcc-toolset-11-annobin-plugin-gcc jemalloc jemalloc-devel krb5-devel libaio-devel \ -libcurl-devel libtirpc-devel libudev-devel m4 make ncurses-devel numactl-devel openldap-devel \ -openssl openssl-devel pam-devel readline-devel zlib-devel findutils procps-ng xz" +DEPS="autoconf automake binutils bison bzip2 cmake cyrus-sasl-devel cyrus-sasl-scram \ +gcc-c++ gcc-toolset-11 gcc-toolset-11-annobin-plugin-gcc gcc-toolset-11-libatomic-devel \ +jemalloc jemalloc-devel krb5-devel libaio-devel libatomic libcurl-devel libtirpc-devel \ +libudev-devel m4 make ncurses-devel numactl-devel openldap-devel openssl openssl-devel \ +pam-devel patchelf readline-devel zlib-devel findutils procps-ng xz" From ab979ecd8c3066283f5bebb9a4c38bc1a2995f02 Mon Sep 17 00:00:00 2001 From: Yejr Date: Fri, 17 Oct 2025 15:19:55 +0800 Subject: [PATCH 17/30] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E4=BE=9D=E8=B5=96?= =?UTF-8?q?=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GreatSQL-Build/CHANGELOG.md | 2 +- GreatSQL-Build/Dockerfile | 2 +- GreatSQL-Build/greatsql-setenv.sh | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/GreatSQL-Build/CHANGELOG.md b/GreatSQL-Build/CHANGELOG.md index 880f24a..85c977d 100644 --- a/GreatSQL-Build/CHANGELOG.md +++ b/GreatSQL-Build/CHANGELOG.md @@ -3,6 +3,6 @@ ## 2025.10.16 * 更新到GreatSQL 8.4.4-4 * 修改boost下载源 -* 安装依赖增加libatomic +* 安装依赖增加libatomic,libicu,perl,protobuf-lite等 [8.4.4-4]: https://gitee.com/GreatSQL/GreatSQL-Docker/tree/greatsql-8.4.4-4/GreatSQL-Build diff --git a/GreatSQL-Build/Dockerfile b/GreatSQL-Build/Dockerfile index 7ba73fc..764130b 100644 --- a/GreatSQL-Build/Dockerfile +++ b/GreatSQL-Build/Dockerfile @@ -22,7 +22,7 @@ chmod +x /*sh ${OPT_DIR}/*sh && \ /usr/sbin/groupadd -g ${MYSQL_UID} ${MYSQL_USER} && \ /usr/sbin/useradd -u ${MYSQL_UID} -g ${MYSQL_UID} -s /sbin/nologin ${MYSQL_USER} && \ echo '[main]' > /etc/dnf/dnf.conf && \ -microdnf install -y util-linux && \ +microdnf install -y util-linux oracle-epel-release-el8 && \ microdnf clean all ENTRYPOINT ["sh"] diff --git a/GreatSQL-Build/greatsql-setenv.sh b/GreatSQL-Build/greatsql-setenv.sh index 25f82d7..113d2bf 100755 --- a/GreatSQL-Build/greatsql-setenv.sh +++ b/GreatSQL-Build/greatsql-setenv.sh @@ -47,6 +47,6 @@ fi DEPS="autoconf automake binutils bison bzip2 cmake cyrus-sasl-devel cyrus-sasl-scram \ gcc-c++ gcc-toolset-11 gcc-toolset-11-annobin-plugin-gcc gcc-toolset-11-libatomic-devel \ -jemalloc jemalloc-devel krb5-devel libaio-devel libatomic libcurl-devel libtirpc-devel \ +jemalloc jemalloc-devel krb5-devel libaio-devel libatomic libcurl-devel libicu libicu-devel libtirpc-devel \ libudev-devel m4 make ncurses-devel numactl-devel openldap-devel openssl openssl-devel \ -pam-devel patchelf readline-devel zlib-devel findutils procps-ng xz" +pam-devel patchelf perl protobuf-lite readline-devel zlib-devel findutils procps-ng xz" From a5fceec3897208b21bfeefdae38ff505ff896a46 Mon Sep 17 00:00:00 2001 From: Yejr Date: Tue, 21 Oct 2025 17:44:42 +0800 Subject: [PATCH 18/30] =?UTF-8?q?GreatSQL-Build=E5=8D=87=E7=BA=A7=E5=88=B0?= =?UTF-8?q?8.4.4-4=EF=BC=8C=E4=BF=AE=E5=A4=8D=E4=B8=80=E4=BA=9B=E7=BC=96?= =?UTF-8?q?=E8=AF=91=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GreatSQL-Shell-Build/CHANGELOG.md | 25 ++------ GreatSQL-Shell-Build/Dockerfile | 2 +- GreatSQL-Shell-Build/README.md | 28 ++++----- GreatSQL-Shell-Build/docker-entrypoint.sh | 6 +- GreatSQL-Shell-Build/greatsqlsh-automake.sh | 10 ++- GreatSQL-Shell-Build/greatsqlsh-setenv.sh | 14 ++--- GreatSQL-Shell-Build/mysql-8.4.4.patch | 38 ++++++++++++ .../mysqlsh-for-greatsql-8.0.32.patch | 48 --------------- .../mysqlsh-for-greatsql-8.4.4.patch | 61 +++++++++++++++++++ 9 files changed, 134 insertions(+), 98 deletions(-) create mode 100644 GreatSQL-Shell-Build/mysql-8.4.4.patch delete mode 100644 GreatSQL-Shell-Build/mysqlsh-for-greatsql-8.0.32.patch create mode 100644 GreatSQL-Shell-Build/mysqlsh-for-greatsql-8.4.4.patch diff --git a/GreatSQL-Shell-Build/CHANGELOG.md b/GreatSQL-Shell-Build/CHANGELOG.md index 5e67914..174798f 100644 --- a/GreatSQL-Shell-Build/CHANGELOG.md +++ b/GreatSQL-Shell-Build/CHANGELOG.md @@ -1,21 +1,8 @@ -# 8.0.32-25 更新日志 +# 8.4.4-4 更新日志 -## 2024.4.2 -* 将更多依赖动态库文件CP到发行包中,方便在其他平台直接运行。 -* 发行包中去掉OS标识。 +## 2025.10.21 +* 更新到8.4.4-4版本 +* 支持仲裁节点 +* 修改gcc依赖 -## 2024.3.12 -* 增加V8(JS语法)支持。 -* 优化Dockerfile,只进行基础镜像构建,依赖包安装、yum update等工作放在外部脚本中完成。 - -## 2024.2.20 -* 优化GreatSQL-Shell-Build,改用从服务器上下载,无需准备本地二进制文件包。 - -## 2024.1.22 - -* 版本更新到GreatSQL 8.0.32-25。 -* 支持从hub.docker.com中拉取镜像并自动完成编译工作。 -* 也支持调用本地脚本完成自动创建GreatSQL Shell编译环境Docker镜像,并自动创建GreatSQL Shell自动编译Docker容器,一条命令即可完成全部编译工作。 -* 编译后的二进制包用xz压缩,压缩比更高,在xz压缩时采用并行方式,降低压缩耗时。 - -[8.0.32-25]: https://gitee.com/GreatSQL/GreatSQL-Docker/tree/greatsql-8.0.32-25/GreatSQL-Shell-Build +[8.4.4-4]: https://gitee.com/GreatSQL/GreatSQL-Docker/tree/greatsql-8.4.4-4/GreatSQL-Shell-Build diff --git a/GreatSQL-Shell-Build/Dockerfile b/GreatSQL-Shell-Build/Dockerfile index 89346e9..c25fca8 100644 --- a/GreatSQL-Shell-Build/Dockerfile +++ b/GreatSQL-Shell-Build/Dockerfile @@ -9,7 +9,7 @@ ENV LANG en_US.utf8 ARG OPT_DIR=/opt \ MYSQL_UID=3306 \ MYSQL_USER=mysql \ -GREATSQLSH_BUILD_DOWNLOAD_URL="https://gitee.com/GreatSQL/GreatSQL-Docker/raw/greatsql-8.0.32-25/GreatSQL-Shell-Build" \ +GREATSQLSH_BUILD_DOWNLOAD_URL="https://gitee.com/GreatSQL/GreatSQL-Docker/raw/greatsql-8.4.4-4/GreatSQL-Shell-Build" \ GREATSQLSH_ENV="greatsqlsh-setenv.sh" \ ENTRYPOINT="docker-entrypoint.sh" diff --git a/GreatSQL-Shell-Build/README.md b/GreatSQL-Shell-Build/README.md index a84e836..cb1652e 100644 --- a/GreatSQL-Shell-Build/README.md +++ b/GreatSQL-Shell-Build/README.md @@ -9,8 +9,7 @@ ## 基本信息 - 维护者: GreatSQL(greatsql@greatdb.com) - 联系我们: greatsql@greatdb.com -- 最新版本:GreatSQL 8.0.32-25 -- 最后更新时间:2024-03-12 +- 最新版本:GreatSQL 8.4.4-4 - 支持CPU架构:x86_64、aarch64 ## 支持哪些tag @@ -21,7 +20,7 @@ 例如: ```shell -$ docker run -itd --hostname greatsqlsh --name greatsqlsh greatsql/greatsql_shell_build:8.0.32-25 bash +$ docker run -itd --hostname greatsqlsh --name greatsqlsh greatsql/greatsql_shell_build:8.4.4-4 bash ``` 执行上述命令后,会创建一个GreatSQL-Shell编译环境容器,并在容器中自动完成GreatSQL-Shell编译工作。 @@ -53,31 +52,31 @@ $ docker logs greatsqlsh | tail 5.1 compiling mysqlclient and mysqlxclient 5.2 compiling MySQL Shell for GreatSQL -6. MySQL Shell for GreatSQL 8.0.32-25 build completed! - 6.1 MySQL Shell for GreatSQL 8.0.32-25 version: -/opt/greatsql-shell-8.0.32-25-centos-glibc2.28-x86_64/bin/mysqlsh Ver 8.0.32 for Linux on x86_64 - for MySQL 8.0.32 (Source distribution) +6. MySQL Shell for GreatSQL 8.4.4-4 build completed! + 6.1 MySQL Shell for GreatSQL 8.4.4-4 version: +/opt/greatsql-shell-8.4.4-4-centos-glibc2.28-x86_64/bin/mysqlsh Ver 8.4.4 for Linux on x86_64 - for MySQL 8.4.4 (Source distribution) 6.2 TARBALL file: --rw-r--r-- 1 root root 20378992 Mar 12 10:33 /opt/greatsql-shell-8.0.32-25-centos-glibc2.28-x86_64.tar.xz +-rw-r--r-- 1 root root 40284300 Oct 21 09:38 /opt/greatsql-shell-8.4.4-4-glibc2.28-x86_64.tar.xz ``` 接下来回退到宿主机,将容器中的二进制包拷贝出来 ```shell -$ docker cp greatsqlsh:/opt/greatsql-shell-8.0.32-25-centos-glibc2.28-x86_64.tar.xz /usr/local/ +$ docker cp greatsqlsh:/opt/greatsql-shell-8.4.4-4-glibc2.28-x86_64.tar.xz /usr/local/ ``` 然后解压缩,就可以在宿主机环境下使用了,例如: ```shell # 先安装几个必要的依赖包 $ dnf install -y libssh python38 python38-libs python38-pyyaml -$ pip3.8 install --user certifi pyclamd +$ pip3.8 install -i https://pypi.tuna.tsinghua.edu.cn/simple --user certifi pyclamd numpy # 测试使用 -$ /usr/local/greatsql-shell-8.0.32-25-centos-glibc2.28-x86_64/bin/mysqlsh -MySQL Shell 8.0.32 +$ /usr/local/greatsql-shell-8.4.4-4-glibc2.28-x86_64/bin/mysqlsh ... -Type '\help' or '\?' for help; '\quit' to exit. - MySQL JS > \q + MySQL 127.0.0.1:3306 ssl SQL > \py +Switching to Python mode... + MySQL 127.0.0.1:3306 ssl Py > \q Bye! ``` @@ -87,7 +86,8 @@ Bye! - Dockerfile,用于构建Docker编译环境 - greatsqlsh-automake.sh,用于实现在Docker容器中自动化编译的脚本 - greatsqlsh-setenv.sh,通用环境变量设置脚本 -- mysqlsh-for-greatsql-8.0.32.patch,需要对MySQL Shell打补丁,才能支持GreatSQL中特有的仲裁节点特性 +- mysqlsh-for-greatsql-8.4.4.patch,需要对MySQL Shell打补丁,才能支持GreatSQL中特有的仲裁节点特性 +- mysql-8.4.4.patch,需要对MySQL源码包打补丁,修改gcc依赖版本 ## 其他分支 - 如果您想尝试支持Python 3.10版本的GreatSQL Shell,可参考 [earl86](https://gitee.com/earl86) 维护的[GreatSQL-Shell-Build分支](https://gitee.com/earl86/GreatSQL-Docker/tree/master/GreatSQL-Shell-Build)。 diff --git a/GreatSQL-Shell-Build/docker-entrypoint.sh b/GreatSQL-Shell-Build/docker-entrypoint.sh index 3c64aee..8e42172 100755 --- a/GreatSQL-Shell-Build/docker-entrypoint.sh +++ b/GreatSQL-Shell-Build/docker-entrypoint.sh @@ -70,9 +70,9 @@ echo && \ echo "5. compiling MySQL Shell for GreatSQL" su - ${MYSQL_USER} -s /bin/bash -c "cd ${OPT_DIR}; /bin/sh ${OPT_DIR}/${GREATSQLSH_MAKESH}" && \ echo && \ -echo "6. MySQL Shell for GreatSQL 8.0.32-25 build completed!" -pip3.8 install -i https://pypi.tuna.tsinghua.edu.cn/simple --user certifi pyclamd >> ${MAKELOG} 2>&1 && \ -echo " 6.1 MySQL Shell for GreatSQL 8.0.32-25 version:" && \ +echo "6. MySQL Shell for GreatSQL ${MYSQL_VERSION}-${RELEASE} build completed!" +pip3.8 install -i https://pypi.tuna.tsinghua.edu.cn/simple --user certifi pyclamd numpy >> ${MAKELOG} 2>&1 && \ +echo " 6.1 MySQL Shell for GreatSQL ${MYSQL_VERSION}-${RELEASE} version:" && \ ${BASE_DIR}/bin/mysqlsh --version && \ cd ${OPT_DIR} && \ tar cf ${GREATSQLSH}.tar ${GREATSQLSH} >> ${MAKELOG} 2>&1 && \ diff --git a/GreatSQL-Shell-Build/greatsqlsh-automake.sh b/GreatSQL-Shell-Build/greatsqlsh-automake.sh index a9ddeea..54d3558 100755 --- a/GreatSQL-Shell-Build/greatsqlsh-automake.sh +++ b/GreatSQL-Shell-Build/greatsqlsh-automake.sh @@ -8,7 +8,9 @@ mkdir bld && \ cd bld && \ cmake .. -DBOOST_INCLUDE_DIR=${OPT_DIR}/${BOOST} \ -DLOCAL_BOOST_DIR=${OPT_DIR}/${BOOST} \ --DWITH_SSL=system -DWITH_MYSQLX_USE_PROTOBUF_FULL=OFF >> ${MAKELOG} 2>&1 && \ +-DWITH_AUTHENTICATION_KERBEROS=ON \ +-DWITH_PROTOBUF=system \ +-DWITH_SSL=system >> ${MAKELOG} 2>&1 && \ cmake --build . --target mysqlclient -- -j${MAKE_JOBS} >> ${MAKELOG} 2>&1 ; \ cmake --build . --target mysqlxclient -- -j${MAKE_JOBS} >> ${MAKELOG} 2>&1 && \ echo " 5.2 compiling MySQL Shell for GreatSQL" && \ @@ -23,12 +25,8 @@ cmake .. \ -DMYSQL_BUILD_DIR=${OPT_DIR}/${MYSQL}/bld/ \ -DBUILD_SOURCE_PACKAGE=0 \ -DWITH_PROTOBUF=system \ --DHAVE_V8=1 \ --DV8_INCLUDE_DIR=/usr/include \ --DV8_LIB_DIR=/usr/lib64 \ -DHAVE_PYTHON=1 \ --DBUNDLED_ANTLR_DIR=/usr/local/antlr4/ \ --DPYTHON_LIBRARIES=/usr/lib64/python3.8 -DPYTHON_INCLUDE_DIRS=/usr/include/python3.8/ >> ${MAKELOG} 2>&1 && \ +-DBUNDLED_ANTLR_DIR=/usr/local/antlr4/ >> ${MAKELOG} 2>&1 && \ make -j${MAKE_JOBS} >> ${MAKELOG} 2>&1 && \ make -j${MAKE_JOBS} install >> ${MAKELOG} 2>&1 && \ cp /usr/local/lib/libprotobuf.so.30 ${BASE_DIR}/lib/mysqlsh/ && diff --git a/GreatSQL-Shell-Build/greatsqlsh-setenv.sh b/GreatSQL-Shell-Build/greatsqlsh-setenv.sh index d40dd72..8b3542d 100755 --- a/GreatSQL-Shell-Build/greatsqlsh-setenv.sh +++ b/GreatSQL-Shell-Build/greatsqlsh-setenv.sh @@ -12,17 +12,17 @@ else fi OPT_DIR=/opt -MYSQL_VERSTION=8.0.32 -RELEASE=25 +MYSQL_VERSION=8.4.4 +RELEASE=4 GLIBC=`ldd --version | head -n 1 | awk '{print $NF}'` ARCH=`uname -p` OS=`grep '^ID=' /etc/os-release | sed 's/.*"\(.*\)".*/\1/ig'` MAKELOG=/tmp/greatsqlsh-automake.log MYSQL_USER=mysql -GREATSQLSH=greatsql-shell-${MYSQL_VERSTION}-${RELEASE}-glibc${GLIBC}-${ARCH} +GREATSQLSH=greatsql-shell-${MYSQL_VERSION}-${RELEASE}-glibc${GLIBC}-${ARCH} BASE_DIR=${OPT_DIR}/${GREATSQLSH} GREATSQL_BUILD_DOWNLOAD_URL="https://product.greatdb.com/GreatSQL-Docker/deppkgs" -GREATSQLSH_BUILD_DOWNLOAD_URL="https://gitee.com/GreatSQL/GreatSQL-Docker/raw/greatsql-8.0.32-25/GreatSQL-Shell-Build" +GREATSQLSH_BUILD_DOWNLOAD_URL="https://gitee.com/GreatSQL/GreatSQL-Docker/raw/greatsql-8.4.4-4/GreatSQL-Shell-Build" BOOST_SRC_DOWNLOAD_URL="https://boostorg.jfrog.io/artifactory/main/release/1.77.0/source" MYSQL_SRC_DOWNLOAD_URL="https://downloads.mysql.com/archives/get/p/23/file" MYSQLSH_SRC_DOWNLOAD_URL="https://downloads.mysql.com/archives/get/p/43/file" @@ -36,11 +36,11 @@ V8_DEPS="deps-v8" YUM_REPOS="yum-repos" ANTLR="antlr4-4.10" BOOST="boost_1_77_0" -MYSQL="mysql-8.0.32" -MYSQLSH="mysql-shell-8.0.32-src" +MYSQL="mysql-8.4.4" +MYSQLSH="mysql-shell-8.4.4-src" PATCHELF="patchelf-0.14.5" PROTOBUF="protobuf-3.19.4" -GREATSQLSH_PATCH="mysqlsh-for-greatsql-8.0.32.patch" +GREATSQLSH_PATCH="mysqlsh-for-greatsql-8.4.4.patch" GREATSQLSH_MAKESH="greatsqlsh-automake.sh" GREATSQLSH_ENV="greatsqlsh-setenv.sh" if [ "`uname -p`" = "aarch64" ] ; then diff --git a/GreatSQL-Shell-Build/mysql-8.4.4.patch b/GreatSQL-Shell-Build/mysql-8.4.4.patch new file mode 100644 index 0000000..13cbd52 --- /dev/null +++ b/GreatSQL-Shell-Build/mysql-8.4.4.patch @@ -0,0 +1,38 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 2268d852..5c0ee707 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -315,7 +315,9 @@ IF(CMAKE_HOST_UNIX AND NOT FORCE_UNSUPPORTED_COMPILER + ELSE() + SET(ALTERNATIVE_PATHS "/opt/rh/devtoolset-11") + ENDIF() +- ELSEIF(LINUX_RHEL8 OR LINUX_RHEL9) ++ ELSEIF(LINUX_RHEL8) ++ SET(ALTERNATIVE_PATHS "/opt/rh/gcc-toolset-11") ++ ELSEIF(LINUX_RHEL9) + SET(ALTERNATIVE_PATHS "/opt/rh/gcc-toolset-12") + ENDIF() + +@@ -368,7 +370,7 @@ IF(CMAKE_HOST_UNIX AND NOT FORCE_UNSUPPORTED_COMPILER + MESSAGE(STATUS "Using ${ALTERNATIVE_GCC}") + MESSAGE(STATUS "Using ${ALTERNATIVE_GPP}") + ELSE() +- IF(LINUX_RHEL7) ++ IF(LINUX_RHEL7) + IF(MY_HOST_MACHINE_NAME MATCHES "aarch64") + SET(DEV_PACKAGES + "devtoolset-10-gcc devtoolset-10-gcc-c++ devtoolset-10-binutils") +@@ -376,7 +378,12 @@ IF(CMAKE_HOST_UNIX AND NOT FORCE_UNSUPPORTED_COMPILER + SET(DEV_PACKAGES + "devtoolset-11-gcc devtoolset-11-gcc-c++ devtoolset-11-binutils") + ENDIF() +- ELSEIF(LINUX_RHEL8 OR LINUX_RHEL9) ++ ELSEIF(LINUX_RHEL8) ++ SET(DEV_PACKAGES ++ "gcc-toolset-11-gcc gcc-toolset-11-gcc-c++ gcc-toolset-11-binutils") ++ STRING_APPEND(DEV_PACKAGES " gcc-toolset-11-annobin-annocheck") ++ STRING_APPEND(DEV_PACKAGES " gcc-toolset-11-annobin-plugin-gcc") ++ ELSEIF(LINUX_RHEL9) + SET(DEV_PACKAGES + "gcc-toolset-12-gcc gcc-toolset-12-gcc-c++ gcc-toolset-12-binutils") + STRING_APPEND(DEV_PACKAGES " gcc-toolset-12-annobin-annocheck") diff --git a/GreatSQL-Shell-Build/mysqlsh-for-greatsql-8.0.32.patch b/GreatSQL-Shell-Build/mysqlsh-for-greatsql-8.0.32.patch deleted file mode 100644 index 1b2b968..0000000 --- a/GreatSQL-Shell-Build/mysqlsh-for-greatsql-8.0.32.patch +++ /dev/null @@ -1,48 +0,0 @@ -diff --git a/mysqlshdk/libs/mysql/group_replication.cc b/mysqlshdk/libs/mysql/group_replication.cc -index 436a62b15..8f8958ce7 100644 ---- a/mysqlshdk/libs/mysql/group_replication.cc -+++ b/mysqlshdk/libs/mysql/group_replication.cc -@@ -107,6 +107,8 @@ std::string to_string(const Member_role role) { - return "PRIMARY"; - case Member_role::SECONDARY: - return "SECONDARY"; -+ case Member_role::ARBITRATOR: -+ return "ARBITRATOR"; - case Member_role::NONE: - return "NONE"; - } -@@ -118,6 +120,8 @@ Member_role to_member_role(const std::string &role) { - return Member_role::PRIMARY; - } else if (shcore::str_caseeq("SECONDARY", role)) { - return Member_role::SECONDARY; -+ } else if (shcore::str_caseeq("ARBITRATOR", role)) { -+ return Member_role::ARBITRATOR; - } else if (role.empty()) { - return Member_role::NONE; - } else { -diff --git a/mysqlshdk/libs/mysql/group_replication.h b/mysqlshdk/libs/mysql/group_replication.h -index 05dfa54bf..23ccf6a76 100644 ---- a/mysqlshdk/libs/mysql/group_replication.h -+++ b/mysqlshdk/libs/mysql/group_replication.h -@@ -73,7 +73,7 @@ enum class Member_state { - MISSING - }; - --enum class Member_role { PRIMARY, SECONDARY, NONE }; -+enum class Member_role { PRIMARY, SECONDARY, ARBITRATOR, NONE }; - - enum class Topology_mode { SINGLE_PRIMARY, MULTI_PRIMARY, NONE }; - -diff --git a/mysqlshdk/scripting/jscript_context.cc b/mysqlshdk/scripting/jscript_context.cc -index 5f4675174..0e7ff1e26 100644 ---- a/mysqlshdk/scripting/jscript_context.cc -+++ b/mysqlshdk/scripting/jscript_context.cc -@@ -1557,7 +1557,7 @@ v8::Local v8_array_buffer(v8::Isolate *isolate, - - std::string to_string(v8::Isolate *isolate, v8::Local obj) { - const v8::String::Utf8Value utf8{ -- isolate, obj->IsSymbol() ? obj.As()->Name() : obj}; -+ isolate, obj->IsSymbol() ? obj.As()->Description() : obj}; - const auto ptr = *utf8; - return nullptr == ptr ? "" : std::string(ptr, utf8.length()); - } diff --git a/GreatSQL-Shell-Build/mysqlsh-for-greatsql-8.4.4.patch b/GreatSQL-Shell-Build/mysqlsh-for-greatsql-8.4.4.patch new file mode 100644 index 0000000..26480f3 --- /dev/null +++ b/GreatSQL-Shell-Build/mysqlsh-for-greatsql-8.4.4.patch @@ -0,0 +1,61 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 7a669d268..4f5ddd49c 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -239,7 +239,7 @@ IF(CMAKE_HOST_UNIX AND NOT FORCE_UNSUPPORTED_COMPILER + SET(ALTERNATIVE_PATHS "/opt/rh/devtoolset-11") + ENDIF() + ELSEIF(LINUX_RHEL8 OR LINUX_RHEL9) +- SET(ALTERNATIVE_PATHS "/opt/rh/gcc-toolset-12") ++ SET(ALTERNATIVE_PATHS "/opt/rh/gcc-toolset-11") + ENDIF() + + FOREACH(OPT_PATH ${ALTERNATIVE_PATHS}) +@@ -298,9 +298,9 @@ IF(CMAKE_HOST_UNIX AND NOT FORCE_UNSUPPORTED_COMPILER + ENDIF() + ELSEIF(LINUX_RHEL8 OR LINUX_RHEL9) + SET(DEV_PACKAGES +- "gcc-toolset-12-gcc gcc-toolset-12-gcc-c++ gcc-toolset-12-binutils") +- STRING_APPEND(DEV_PACKAGES " gcc-toolset-12-annobin-annocheck") +- STRING_APPEND(DEV_PACKAGES " gcc-toolset-12-annobin-plugin-gcc") ++ "gcc-toolset-11-gcc gcc-toolset-11-gcc-c++ gcc-toolset-11-binutils") ++ STRING_APPEND(DEV_PACKAGES " gcc-toolset-11-annobin-annocheck") ++ STRING_APPEND(DEV_PACKAGES " gcc-toolset-11-annobin-plugin-gcc") + ENDIF() + MESSAGE(WARNING + "Could not find devtoolset compiler/linker in ${ALTERNATIVE_PATHS}") +diff --git a/mysqlshdk/libs/mysql/group_replication.cc b/mysqlshdk/libs/mysql/group_replication.cc +index b6c840cbb..574d60ec7 100644 +--- a/mysqlshdk/libs/mysql/group_replication.cc ++++ b/mysqlshdk/libs/mysql/group_replication.cc +@@ -105,6 +105,8 @@ std::string to_string(const Member_role role) { + return "PRIMARY"; + case Member_role::SECONDARY: + return "SECONDARY"; ++ case Member_role::ARBITRATOR: ++ return "ARBITRATOR"; + case Member_role::NONE: + return "NONE"; + } +@@ -116,6 +118,8 @@ Member_role to_member_role(const std::string &role) { + return Member_role::PRIMARY; + } else if (shcore::str_caseeq("SECONDARY", role)) { + return Member_role::SECONDARY; ++ } else if (shcore::str_caseeq("ARBITRATOR", role)) { ++ return Member_role::ARBITRATOR; + } else if (role.empty()) { + return Member_role::NONE; + } else { +diff --git a/mysqlshdk/libs/mysql/group_replication.h b/mysqlshdk/libs/mysql/group_replication.h +index 8337db933..0c28e281c 100644 +--- a/mysqlshdk/libs/mysql/group_replication.h ++++ b/mysqlshdk/libs/mysql/group_replication.h +@@ -75,7 +75,7 @@ enum class Member_state { + MISSING + }; + +-enum class Member_role { PRIMARY, SECONDARY, NONE }; ++enum class Member_role { PRIMARY, SECONDARY, ARBITRATOR, NONE }; + + enum class Topology_mode { SINGLE_PRIMARY, MULTI_PRIMARY, NONE }; + From 5f9c69420a68734631326f66ce7bf97513f2236c Mon Sep 17 00:00:00 2001 From: Yejr Date: Wed, 22 Oct 2025 09:40:43 +0800 Subject: [PATCH 19/30] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=BB=99MySQL=208.4?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=89=93=E8=A1=A5=E4=B8=81=E6=AD=A5=E9=AA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GreatSQL-Shell-Build/Dockerfile | 1 + GreatSQL-Shell-Build/greatsqlsh-automake.sh | 1 + GreatSQL-Shell-Build/greatsqlsh-setenv.sh | 1 + 3 files changed, 3 insertions(+) diff --git a/GreatSQL-Shell-Build/Dockerfile b/GreatSQL-Shell-Build/Dockerfile index c25fca8..03b28d6 100644 --- a/GreatSQL-Shell-Build/Dockerfile +++ b/GreatSQL-Shell-Build/Dockerfile @@ -23,6 +23,7 @@ rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \ rm -f /lib/systemd/system/basic.target.wants/*;\ rm -f /lib/systemd/system/anaconda.target.wants/*; \ rm -f /etc/yum.repos.d/CentOS-Linux-* ; \ +rm -f /etc/yum.repos.d/CentOS-Stream-* ; \ curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo > /dev/null 2>&1 && \ sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo > /dev/null 2>&1 && \ dnf -y update > /dev/null 2>&1 ; \ diff --git a/GreatSQL-Shell-Build/greatsqlsh-automake.sh b/GreatSQL-Shell-Build/greatsqlsh-automake.sh index 54d3558..79268b6 100755 --- a/GreatSQL-Shell-Build/greatsqlsh-automake.sh +++ b/GreatSQL-Shell-Build/greatsqlsh-automake.sh @@ -3,6 +3,7 @@ echo " 5.1 compiling mysqlclient and mysqlxclient" && \ cd ${OPT_DIR}/${MYSQL} && \ +patch -p1 -f < ${OPT_DIR}/${MYSQL_PATCH} >> ${MAKELOG} 2>&1 && \ rm -fr bld && \ mkdir bld && \ cd bld && \ diff --git a/GreatSQL-Shell-Build/greatsqlsh-setenv.sh b/GreatSQL-Shell-Build/greatsqlsh-setenv.sh index 8b3542d..5687042 100755 --- a/GreatSQL-Shell-Build/greatsqlsh-setenv.sh +++ b/GreatSQL-Shell-Build/greatsqlsh-setenv.sh @@ -40,6 +40,7 @@ MYSQL="mysql-8.4.4" MYSQLSH="mysql-shell-8.4.4-src" PATCHELF="patchelf-0.14.5" PROTOBUF="protobuf-3.19.4" +MYSQL_PATCH="mysql-8.4.4.patch" GREATSQLSH_PATCH="mysqlsh-for-greatsql-8.4.4.patch" GREATSQLSH_MAKESH="greatsqlsh-automake.sh" GREATSQLSH_ENV="greatsqlsh-setenv.sh" From 5bbf56d5c1405314cf3c7992b328f9439275654f Mon Sep 17 00:00:00 2001 From: Yejr Date: Wed, 22 Oct 2025 11:01:33 +0800 Subject: [PATCH 20/30] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=B8=8B=E8=BD=BDmysql?= =?UTF-8?q?=20patch=E6=AD=A5=E9=AA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GreatSQL-Shell-Build/docker-entrypoint.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/GreatSQL-Shell-Build/docker-entrypoint.sh b/GreatSQL-Shell-Build/docker-entrypoint.sh index 8e42172..8e5e822 100755 --- a/GreatSQL-Shell-Build/docker-entrypoint.sh +++ b/GreatSQL-Shell-Build/docker-entrypoint.sh @@ -31,6 +31,7 @@ echo " 1.1 downloading sourcecode tarballs ..." && \ wget -c -O ${GREATSQLSH_ENV} ${GREATSQLSH_BUILD_DOWNLOAD_URL}/${GREATSQLSH_ENV} >> ${MAKELOG} 2>&1 && \ wget -c -O ${GREATSQLSH_MAKESH} ${GREATSQLSH_BUILD_DOWNLOAD_URL}/${GREATSQLSH_MAKESH} >> ${MAKELOG} 2>&1 && \ wget -c -O ${GREATSQLSH_PATCH} ${GREATSQLSH_BUILD_DOWNLOAD_URL}/${GREATSQLSH_PATCH} >> ${MAKELOG} 2>&1 && \ +wget -c -O ${MYSQL_PATCH} ${GREATSQLSH_BUILD_DOWNLOAD_URL}/${MYSQL_PATCH} >> ${MAKELOG} 2>&1 && \ wget -c -O ${RPCGEN} ${GREATSQL_BUILD_DOWNLOAD_URL}/${RPCGEN} >> ${MAKELOG} 2>&1 && \ wget -c -O ${PATCHELF}.tar.gz ${GREATSQL_BUILD_DOWNLOAD_URL}/${PATCHELF}.tar.gz >> ${MAKELOG} 2>&1 && \ wget -c -O ${PROTOBUF}.tar.xz ${GREATSQL_BUILD_DOWNLOAD_URL}/${PROTOBUF}.tar.xz >> ${MAKELOG} 2>&1 && \ From 7d424c8966a936507e2cbd2a68015e10e03005e7 Mon Sep 17 00:00:00 2001 From: Yejr Date: Wed, 22 Oct 2025 13:50:49 +0800 Subject: [PATCH 21/30] =?UTF-8?q?=E6=9B=B4=E6=96=B0greatsql=20shell?= =?UTF-8?q?=E7=BC=96=E8=AF=91=E7=8E=AF=E5=A2=83=E4=BE=9D=E8=B5=96=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GreatSQL-Shell-Build/greatsqlsh-setenv.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/GreatSQL-Shell-Build/greatsqlsh-setenv.sh b/GreatSQL-Shell-Build/greatsqlsh-setenv.sh index 5687042..07dc26d 100755 --- a/GreatSQL-Shell-Build/greatsqlsh-setenv.sh +++ b/GreatSQL-Shell-Build/greatsqlsh-setenv.sh @@ -30,7 +30,7 @@ MYSQLSH_SRC_DOWNLOAD_URL="https://downloads.mysql.com/archives/get/p/43/file" DEPS="autoconf automake binutils bison cmake cyrus-sasl-devel cyrus-sasl-scram gcc-c++ \ gcc-toolset-11 gcc-toolset-11-annobin-plugin-gcc libcurl-devel libssh libssh-config libssh-devel \ libtirpc-devel libudev-devel libuuid libuuid-devel m4 make ncurses-devel openssl openssl-devel \ -patch python38 python38-devel python38-libs python38-pyyaml uuid wget zlib-devel" \ +patch python38 python38-devel python38-libs python38-pyyaml uuid wget zlib-devel brotli brotli-devel nodejs-packaging" \ V8_DEPS="deps-v8" YUM_REPOS="yum-repos" From 2cb35c43fb70ca64123c46573a784e9f027b51fb Mon Sep 17 00:00:00 2001 From: Yejr Date: Wed, 22 Oct 2025 14:03:12 +0800 Subject: [PATCH 22/30] =?UTF-8?q?=E6=9B=B4=E6=96=B0greatsql=20shell?= =?UTF-8?q?=E7=BC=96=E8=AF=91=E7=8E=AF=E5=A2=83boost=E4=B8=8B=E8=BD=BD?= =?UTF-8?q?=E6=BA=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GreatSQL-Shell-Build/greatsqlsh-setenv.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/GreatSQL-Shell-Build/greatsqlsh-setenv.sh b/GreatSQL-Shell-Build/greatsqlsh-setenv.sh index 07dc26d..6458eb5 100755 --- a/GreatSQL-Shell-Build/greatsqlsh-setenv.sh +++ b/GreatSQL-Shell-Build/greatsqlsh-setenv.sh @@ -23,7 +23,7 @@ GREATSQLSH=greatsql-shell-${MYSQL_VERSION}-${RELEASE}-glibc${GLIBC}-${ARCH} BASE_DIR=${OPT_DIR}/${GREATSQLSH} GREATSQL_BUILD_DOWNLOAD_URL="https://product.greatdb.com/GreatSQL-Docker/deppkgs" GREATSQLSH_BUILD_DOWNLOAD_URL="https://gitee.com/GreatSQL/GreatSQL-Docker/raw/greatsql-8.4.4-4/GreatSQL-Shell-Build" -BOOST_SRC_DOWNLOAD_URL="https://boostorg.jfrog.io/artifactory/main/release/1.77.0/source" +BOOST_SRC_DOWNLOAD_URL="https://sourceforge.net/projects/boost/files/boost/1.77.0/" MYSQL_SRC_DOWNLOAD_URL="https://downloads.mysql.com/archives/get/p/23/file" MYSQLSH_SRC_DOWNLOAD_URL="https://downloads.mysql.com/archives/get/p/43/file" From 28c2c8bd475ba2ba945926519f25b8b0e8be2490 Mon Sep 17 00:00:00 2001 From: Yejr Date: Wed, 22 Oct 2025 14:42:03 +0800 Subject: [PATCH 23/30] =?UTF-8?q?=E5=A2=9E=E5=8A=A0TARGETARCH=E5=8F=82?= =?UTF-8?q?=E6=95=B0=E4=BB=A5=E6=94=AF=E6=8C=81docker=20buildx=E8=B7=A8?= =?UTF-8?q?=E5=B9=B3=E5=8F=B0=E6=9E=84=E5=BB=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GreatSQL-Shell-Build/Dockerfile | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/GreatSQL-Shell-Build/Dockerfile b/GreatSQL-Shell-Build/Dockerfile index 03b28d6..744c639 100644 --- a/GreatSQL-Shell-Build/Dockerfile +++ b/GreatSQL-Shell-Build/Dockerfile @@ -1,3 +1,8 @@ +# Dockerfile for GreatSQL Shell 8.4.4-4 +# +# docker version 26.1.3 (not podman) +# docker buildx build --platform linux/arm64,linux/amd64 -t greatsql/greatsql_shell_build:8.4.4-4 . --push +# FROM centos:8 LABEL maintainer="greatsql.cn" \ @@ -6,7 +11,8 @@ forum="https://greatsql.cn/forum.php" \ gitee="https://gitee.com/GreatSQL/GreatSQL-Shell-Docker" ENV LANG en_US.utf8 -ARG OPT_DIR=/opt \ +ARG TARGETARCH \ +OPT_DIR=/opt \ MYSQL_UID=3306 \ MYSQL_USER=mysql \ GREATSQLSH_BUILD_DOWNLOAD_URL="https://gitee.com/GreatSQL/GreatSQL-Docker/raw/greatsql-8.4.4-4/GreatSQL-Shell-Build" \ From b5bc813f0911d947b7d806399464a5226373aab8 Mon Sep 17 00:00:00 2001 From: Yejr Date: Wed, 22 Oct 2025 15:16:25 +0800 Subject: [PATCH 24/30] =?UTF-8?q?GreatSQL=20Shell=E5=8D=87=E7=BA=A7?= =?UTF-8?q?=E5=88=B08.4.4-4=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GreatSQL-Shell-Build/Dockerfile | 4 +- GreatSQL-Shell/CHANGELOG.md | 20 ++------- GreatSQL-Shell/Dockerfile | 27 +++++------ GreatSQL-Shell/README.md | 79 ++++++++++++++++++--------------- 4 files changed, 62 insertions(+), 68 deletions(-) diff --git a/GreatSQL-Shell-Build/Dockerfile b/GreatSQL-Shell-Build/Dockerfile index 744c639..1b5262a 100644 --- a/GreatSQL-Shell-Build/Dockerfile +++ b/GreatSQL-Shell-Build/Dockerfile @@ -10,8 +10,8 @@ email="greatsql@greatdb.com" \ forum="https://greatsql.cn/forum.php" \ gitee="https://gitee.com/GreatSQL/GreatSQL-Shell-Docker" -ENV LANG en_US.utf8 -ARG TARGETARCH \ +ARG TARGETARCH +ENV LANG en_US.utf8 \ OPT_DIR=/opt \ MYSQL_UID=3306 \ MYSQL_USER=mysql \ diff --git a/GreatSQL-Shell/CHANGELOG.md b/GreatSQL-Shell/CHANGELOG.md index 71d6205..cbb8b4e 100644 --- a/GreatSQL-Shell/CHANGELOG.md +++ b/GreatSQL-Shell/CHANGELOG.md @@ -1,18 +1,6 @@ -# 8.0.32-25 更新日志 +# 8.4.4-4 更新日志 -## 2024.10.24 -* 更新镜像地址,增加阿里云ACR资源。 +## 2025.10.22 +* 更新到8.4.4-4版本 -## 2024.3.13 -* 更新GreatSQL-Shell到8.0.32-25最新版本,支持JS语法。 - -## 2024.2.20 -* 优化GreatSQL-Shell,改用从服务器上下载,无需准备本地二进制文件包。 -* 支持x86_64/aarch64两种平台。 - -## 2024.1.22 - -* 版本更新到GreatSQL 8.0.32-25。 -* 支持在Docker中运行GreatSQL Shell,无需安装。 - -[8.0.32-25]: https://gitee.com/GreatSQL/GreatSQL-Docker/tree/greatsql-8.0.32-25/GreatSQL-Shell +[8.4.4-4]: https://gitee.com/GreatSQL/GreatSQL-Docker/tree/greatsql-8.4.4-4/GreatSQL-Shell diff --git a/GreatSQL-Shell/Dockerfile b/GreatSQL-Shell/Dockerfile index 8e842e6..dec4e61 100644 --- a/GreatSQL-Shell/Dockerfile +++ b/GreatSQL-Shell/Dockerfile @@ -1,21 +1,21 @@ -#for x86_64 +# Dockerfile for GreatSQL Shell 8.4.4-4 +# +# docker version 26.1.3 (not podman) +# docker buildx build --platform linux/arm64,linux/amd64 -t greatsql/greatsql_shell:8.4.4-4 . --push +# FROM centos:8 -#for aarch64 -#FROM docker.io/arm64v8/centos - LABEL maintainer="greatsql.cn" \ email="greatsql@greatdb.com" \ forum="https://greatsql.cn/forum.php" \ -gitee="https://gitee.com/GreatSQL/GreatSQL-Shell-Docker" +gitee="https://gitee.com/GreatSQL/GreatSQL-Docker" -ENV LANG en_US.utf8 -ARG DEPS="libssh python38 python38-pyyaml python38-dateutil" \ -GREATSQLSH_DOWNLOAD_URL="https://product.greatdb.com/GreatSQL-8.0.32-25" \ -GREATSQLSH="greatsql-shell-8.0.32-25-glibc2.28-x86_64" \ -BASE_DIR=/usr/local -#for aarch64 -#GREATSQLSH="greatsql-shell-8.0.32-25-glibc2.28-aarch64" \ +ARG TARGETARCH +ENV LANG en_US.utf8 \ +DEPS="libssh python38 python38-pyyaml python38-dateutil" \ +GREATSQLSH_DOWNLOAD_URL="https://product.greatdb.com/GreatSQL-8.4.4-4" \ +GREATSQLSH="greatsql-shell-8.4.4-4-glibc2.28-${TARGETARCH}" \ +BASE_DIR="/usr/local" RUN (cd /lib/systemd/system/sysinit.target.wants/; for i in *; do [ $i == \ systemd-tmpfiles-setup.service ] || rm -f $i; done); \ @@ -27,6 +27,7 @@ rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \ rm -f /lib/systemd/system/basic.target.wants/*;\ rm -f /lib/systemd/system/anaconda.target.wants/*; \ rm -f /etc/yum.repos.d/CentOS-Linux-* ; \ +rm -f /etc/yum.repos.d/CentOS-Stream-* ; \ curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo > /dev/null 2>&1 && \ sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo > /dev/null 2>&1 && \ dnf clean all > /dev/null 2>&1 && \ @@ -36,7 +37,7 @@ dnf -y update > /dev/null 2>&1 && \ dnf clean all > /dev/null 2>&1 && \ rm -f /etc/yum.repos.d/CentOS-Linux-* ; \ dnf install -y ${DEPS} > /dev/null 2>&1 && \ -pip3.8 install --user certifi pyclamd > /dev/null 2>&1 && \ +pip3.8 install -i https://pypi.tuna.tsinghua.edu.cn/simple --user certifi pyclamd numpy > /dev/null 2>&1 && \ curl -o ${BASE_DIR}/${GREATSQLSH}.tar.xz ${GREATSQLSH_DOWNLOAD_URL}/${GREATSQLSH}.tar.xz > /dev/null 2>&1 && \ tar xf ${BASE_DIR}/${GREATSQLSH}.tar.xz -C ${BASE_DIR} > /dev/null 2>&1 && \ rm -f ${BASE_DIR}/${GREATSQLSH}.tar.xz > /dev/null 2>&1 && \ diff --git a/GreatSQL-Shell/README.md b/GreatSQL-Shell/README.md index a344fb5..0e501d8 100644 --- a/GreatSQL-Shell/README.md +++ b/GreatSQL-Shell/README.md @@ -2,23 +2,26 @@ ## 简介 -在Docker环境中运行MySQL Shell for GreatSQL 8.0.32-25,无需额外安装,更方便省事。 +在Docker环境中运行MySQL Shell for GreatSQL 8.4.4-4,无需额外安装,更方便省事。 ## 基本信息 - 维护者: GreatSQL(greatsql@greatdb.com) - 联系我们:greatsql@greatdb.com -- 最新版本:GreatSQL 8.0.32-25 -- 最后更新时间:2024-10-24 +- 最新版本:GreatSQL 8.4.4-4 - 支持CPU架构:x86_64、aarch64 ## 支持哪些tag - [latest](https://hub.docker.com/layers/greatsql/greatsql_shell/latest/images/sha256-4264884f14341e3b34077c52c2ee7d0d53ce00fb5e45915c3b57e950ef52d80f?context=explore), [8.0.32-25](https://hub.docker.com/layers/greatsql/greatsql_shell/8.0.32-25/images/sha256-4264884f14341e3b34077c52c2ee7d0d53ce00fb5e45915c3b57e950ef52d80f?context=explore) -- [latest-arch64](https://hub.docker.com/layers/greatsql/greatsql_shell/latest-aarch64/images/sha256-46d3d92632256d24078948a81a6750ae808e3c2292c10eb88107633f5bde85ec?context=explore), [8.0.32-25-aarch64](https://hub.docker.com/layers/greatsql/greatsql_shell/8.0.32-25-aarch64/images/sha256-46d3d92632256d24078948a81a6750ae808e3c2292c10eb88107633f5bde85ec?context=explore) - -备选阿里云 ACR 资源地址:[registry.cn-beijing.aliyuncs.com/greatsql/greatsql_shell](registry.cn-beijing.aliyuncs.com/greatsql/greatsql_shell),支持tag -- [latest](registry.cn-beijing.aliyuncs.com/greatsql/greatsql_shell:latest) -- [8.0.32-25](registry.cn-beijing.aliyuncs.com/greatsql/greatsql_shell:8.0.32-25) +- [latest-arch64](https://hub.docker.com/layers/greatsql/greatsql_shell/latest-aarch64/images/sha256-46d3d92632256d24078948a81a6750ae808e3c2292c10eb88107633f5bde85ec?context=explore) +- [8.0.32-25-aarch64](https://hub.docker.com/layers/greatsql/greatsql_shell/8.0.32-25-aarch64/images/sha256-46d3d92632256d24078948a81a6750ae808e3c2292c10eb88107633f5bde85ec?context=explore) +备选阿里云、腾讯云镜像资源地址,支持的 tag 如下: +- 阿里云 [latest](registry.cn-beijing.aliyuncs.com/greatsql/greatsql_shell:latest) +- 阿里云 [8.4.4-4](registry.cn-beijing.aliyuncs.com/greatsql/greatsql_shell:8.4.4-4) +- 阿里云 [8.0.32-25](registry.cn-beijing.aliyuncs.com/greatsql/greatsql_shell:8.0.32-25) +- 腾讯云 [latest](ccr.ccs.tencentyun.com/greatsql/greatsql_shell:latest) +- 腾讯云 [8.4.4-4](ccr.ccs.tencentyun.com/greatsql/greatsql_shell:8.4.4-4) +- 腾讯云 [8.0.32-25](ccr.ccs.tencentyun.com/greatsql/greatsql_shell:8.0.32-25) ## 怎么使用这个Docker镜像 @@ -32,58 +35,65 @@ $ docker run -itd --hostname greatsqlsh --name greatsqlsh greatsql/greatsql_shel 通过tcp/ip方式连接GreatSQL ```shell -$ docker exec -it greatsqlsh bash -c "mysqlsh --uri GreatSQL@172.17.140.123" -Please provide the password for 'GreatSQL@172.17.140.123': ************* -MySQL Shell 8.0.32 +$ docker exec -it greatsqlsh bash -c "mysqlsh --uri GreatSQL@172.16.16.10" +Please provide the password for 'GreatSQL@172.16.16.10': ************* +... +# 切换到Python语法模式下 + MySQL 127.0.0.1:3306 ssl SQL > \py +Switching to Python mode... ... -Your MySQL connection id is 14891 (X protocol) -Server version: 8.0.32-25 GreatSQL, Release 25, Revision db07cc5cb73 -No default schema selected; type \use to set one. - # 获取当前MGR状态信息 - MySQL 172.17.140.123:33060+ ssl JS > c=dba.getCluster() - MySQL 172.17.140.123:33060+ ssl JS > c.status() + MySQL 172.16.16.10:33060+ ssl Py > c=dba.get_cluster() + MySQL 172.16.16.10:33060+ ssl Py > c.status() { - "clusterName": "mgr803225", + "clusterName": "mgr", "defaultReplicaSet": { "name": "default", - "primary": "172.17.136.59:3306", + "primary": "172.16.16.10:3306", "ssl": "REQUIRED", - "status": "OK_NO_TOLERANCE", - "statusText": "Cluster is NOT tolerant to any failures.", + "statusText": "Cluster is ONLINE and can tolerate up to ONE failure.", "topology": { - "172.17.136.59:3306": { - "address": "172.17.136.59:3306", + "172.16.16.10:3306": { + "address": "172.16.16.10:3306", "memberRole": "PRIMARY", "mode": "R/W", "readReplicas": {}, "replicationLag": "applier_queue_applied", "role": "HA", "status": "ONLINE", - "version": "8.0.32" + "version": "8.4.4" }, - "172.17.140.123:3306": { - "address": "172.17.140.123:3306", + "172.16.16.11:3306": { + "address": "172.16.16.11:3306", "memberRole": "SECONDARY", "mode": "R/O", "readReplicas": {}, "replicationLag": "applier_queue_applied", "role": "HA", "status": "ONLINE", - "version": "8.0.32" + "version": "8.4.4" + }, + "172.16.16.12:3306": { + "address": "172.16.16.12:3306", + "memberRole": "ARBITRATOR", + "mode": "R/O", + "readReplicas": {}, + "role": "HA", + "status": "ONLINE", + "version": "8.4.4" } }, "topologyMode": "Single-Primary" }, - "groupInformationSourceMember": "172.17.136.59:3306" + "groupInformationSourceMember": "192.168.5.160:3306" } - MySQL 172.17.140.123:33060+ ssl JS > + MySQL 172.16.16.10:33060+ ssl JS > # 切换到SQL命令行模式下,并查看连接列表 - MySQL 172.17.140.123:33060+ ssl JS > \sql + MySQL 172.16.16.10:33060+ ssl JS > \sql Switching to SQL mode... Commands end with ; Fetching global names for auto-completion... Press ^C to stop. - MySQL 172.17.140.123:33060+ ssl SQL > show processlist; + MySQL 172.16.16.10:33060+ ssl SQL > show processlist; +-------+-------------+----------------------+------+---------+---------+----------------------------------------------------------+----------------------------------+------------+-----------+---------------+ | Id | User | Host | db | Command | Time | State | Info | Time_ms | Rows_sent | Rows_examined | +-------+-------------+----------------------+------+---------+---------+----------------------------------------------------------+----------------------------------+------------+-----------+---------------+ @@ -105,12 +115,7 @@ $ docker run -itd --hostname greatsqlsh --name greatsqlsh -v /data/GreatSQL/mysq ```shell $ docker exec -it greatsqlsh bash -c "mysqlsh -S/tmp/mysql.sock" Please provide the password for 'root@/tmp%2Fmysql.sock': -MySQL Shell 8.0.32 ... -Fetching schema names for auto-completion... Press ^C to stop. -Your MySQL connection id is 178 -Server version: 8.0.32-25 GreatSQL, Release 25, Revision db07cc5cb73 -No default schema selected; type \use to set one. MySQL localhost Py > \sql Switching to SQL mode... Commands end with ; Fetching global names for auto-completion... Press ^C to stop. @@ -126,7 +131,7 @@ Fetching global names for auto-completion... Press ^C to stop. 9 rows in set (0.0002 sec) ``` -如上所示,这就可以在Docker环境中运行MySQL Shell for GreatSQL 8.0.32-25,用它来管理GreatSQL MGR更方便省事。 +如上所示,这就可以在Docker环境中运行MySQL Shell for GreatSQL 8.4.4-4,用它来管理GreatSQL MGR更方便省事。 ## 文件介绍 - CHANGELOG.md,更新历史 From 260979404e32183c8cf912341829388f11ee2354 Mon Sep 17 00:00:00 2001 From: Yejr Date: Thu, 23 Oct 2025 15:03:17 +0800 Subject: [PATCH 25/30] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=89=A7=E8=A1=8C?= =?UTF-8?q?=E8=BF=87=E7=A8=8B=E8=BE=93=E5=87=BA=EF=BC=9B=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E8=BD=AF=E9=93=BE=E6=8E=A5=E7=9B=AE=E5=BD=95=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GreatSQL-Shell/Dockerfile | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/GreatSQL-Shell/Dockerfile b/GreatSQL-Shell/Dockerfile index dec4e61..84df426 100644 --- a/GreatSQL-Shell/Dockerfile +++ b/GreatSQL-Shell/Dockerfile @@ -10,14 +10,15 @@ email="greatsql@greatdb.com" \ forum="https://greatsql.cn/forum.php" \ gitee="https://gitee.com/GreatSQL/GreatSQL-Docker" -ARG TARGETARCH -ENV LANG en_US.utf8 \ -DEPS="libssh python38 python38-pyyaml python38-dateutil" \ -GREATSQLSH_DOWNLOAD_URL="https://product.greatdb.com/GreatSQL-8.4.4-4" \ -GREATSQLSH="greatsql-shell-8.4.4-4-glibc2.28-${TARGETARCH}" \ +ARG TARGETARCH \ +GREATSQL_VERSION="8.4.4-4" +ENV DEPS="libssh python38 python38-pyyaml python38-dateutil" \ +GREATSQLSH_DOWNLOAD_URL="https://product.greatdb.com/GreatSQL-${GREATSQL_VERSION}" \ +GREATSQLSH="greatsql-shell-${GREATSQL_VERSION}-glibc2.28-${TARGETARCH}" \ BASE_DIR="/usr/local" -RUN (cd /lib/systemd/system/sysinit.target.wants/; for i in *; do [ $i == \ +RUN echo ; echo "0. init"; \ +(cd /lib/systemd/system/sysinit.target.wants/; for i in *; do [ $i == \ systemd-tmpfiles-setup.service ] || rm -f $i; done); \ rm -f /lib/systemd/system/multi-user.target.wants/*;\ rm -f /etc/systemd/system/*.wants/*;\ @@ -26,21 +27,26 @@ rm -f /lib/systemd/system/sockets.target.wants/*udev*; \ rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \ rm -f /lib/systemd/system/basic.target.wants/*;\ rm -f /lib/systemd/system/anaconda.target.wants/*; \ -rm -f /etc/yum.repos.d/CentOS-Linux-* ; \ -rm -f /etc/yum.repos.d/CentOS-Stream-* ; \ +rm -f /etc/yum.repos.d/* ; \ +echo ; echo "1. replace aliyun yum repo" ; \ curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo > /dev/null 2>&1 && \ sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo > /dev/null 2>&1 && \ dnf clean all > /dev/null 2>&1 && \ dnf install -y epel-release > /dev/null 2>&1 && \ -rm -f /etc/yum.repos.d/CentOS-Linux-* ; \ +rm -f /etc/yum.repos.d/CentOS*Linux-* ; \ +rm -f /etc/yum.repos.d/CentOS*Stream-* ; \ +echo ; echo "2. yum update and clean" ; \ dnf -y update > /dev/null 2>&1 && \ dnf clean all > /dev/null 2>&1 && \ -rm -f /etc/yum.repos.d/CentOS-Linux-* ; \ +rm -f /etc/yum.repos.d/CentOS*Linux-* ; \ +rm -f /etc/yum.repos.d/CentOS*Stream-* ; \ +echo; echo "3. install ${DEPS}" ; \ dnf install -y ${DEPS} > /dev/null 2>&1 && \ pip3.8 install -i https://pypi.tuna.tsinghua.edu.cn/simple --user certifi pyclamd numpy > /dev/null 2>&1 && \ +echo ; echo "4. download greatsql-shell ${GREATSQLSH_DOWNLOAD_URL}/${GREATSQLSH}.tar.xz" ; \ curl -o ${BASE_DIR}/${GREATSQLSH}.tar.xz ${GREATSQLSH_DOWNLOAD_URL}/${GREATSQLSH}.tar.xz > /dev/null 2>&1 && \ tar xf ${BASE_DIR}/${GREATSQLSH}.tar.xz -C ${BASE_DIR} > /dev/null 2>&1 && \ rm -f ${BASE_DIR}/${GREATSQLSH}.tar.xz > /dev/null 2>&1 && \ -ln -s ${BASE_DIR}/${GREATSQLSH}/bin/mysqlsh ${BASE_DIR}/bin/mysqlsh +ln -s ${BASE_DIR}/greatsql-shell-${GREATSQL_VERSION}-*/bin/mysqlsh ${BASE_DIR}/bin/mysqlsh CMD ["bash"] From 304bf4f3f5acd98b63b5cc15571a72ff4b5a6932 Mon Sep 17 00:00:00 2001 From: Yejr Date: Thu, 23 Oct 2025 15:03:47 +0800 Subject: [PATCH 26/30] =?UTF-8?q?=E8=B0=83=E6=95=B4ARG=E5=92=8CENV?= =?UTF-8?q?=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GreatSQL-Build/Dockerfile | 4 ++-- GreatSQL-Shell-Build/Dockerfile | 3 +-- GreatSQL/Dockerfile | 3 +-- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/GreatSQL-Build/Dockerfile b/GreatSQL-Build/Dockerfile index 764130b..580b4cf 100644 --- a/GreatSQL-Build/Dockerfile +++ b/GreatSQL-Build/Dockerfile @@ -7,8 +7,8 @@ email="greatsql@greatdb.com" \ forum="https://greatsql.cn/forum.php" \ gitee="https://gitee.com/GreatSQL/GreatSQL-Docker" -ARG TARGETARCH \ -OPT_DIR=/opt \ +ARG TARGETARCH +ENV OPT_DIR=/opt \ MYSQL_UID=3306 \ MYSQL_USER=mysql \ GREATSQL_BUILD_DOWNLOAD_URL="https://gitee.com/GreatSQL/GreatSQL-Docker/raw/greatsql-8.4.4-4/GreatSQL-Build" \ diff --git a/GreatSQL-Shell-Build/Dockerfile b/GreatSQL-Shell-Build/Dockerfile index 1b5262a..a683f38 100644 --- a/GreatSQL-Shell-Build/Dockerfile +++ b/GreatSQL-Shell-Build/Dockerfile @@ -11,8 +11,7 @@ forum="https://greatsql.cn/forum.php" \ gitee="https://gitee.com/GreatSQL/GreatSQL-Shell-Docker" ARG TARGETARCH -ENV LANG en_US.utf8 \ -OPT_DIR=/opt \ +ENV OPT_DIR=/opt \ MYSQL_UID=3306 \ MYSQL_USER=mysql \ GREATSQLSH_BUILD_DOWNLOAD_URL="https://gitee.com/GreatSQL/GreatSQL-Docker/raw/greatsql-8.4.4-4/GreatSQL-Shell-Build" \ diff --git a/GreatSQL/Dockerfile b/GreatSQL/Dockerfile index b7f0c04..8ac8b00 100644 --- a/GreatSQL/Dockerfile +++ b/GreatSQL/Dockerfile @@ -6,8 +6,7 @@ forum="https://greatsql.cn/forum.php" \ gitee="https://gitee.com/GreatSQL/GreatSQL-Docker" ARG TARGETARCH -ENV LANG=en_US.utf8 \ -GREATSQL_DATA_DIR=/data/GreatSQL \ +ENV GREATSQL_DATA_DIR=/data/GreatSQL \ GREATSQL_USER=mysql \ GREATSQL_UID_GID=3306 \ GREATSQL_EXTRACT_DIR=/usr/local \ From a72c6319c3594e6ed8f2134287cdc2234d37b4ad Mon Sep 17 00:00:00 2001 From: Yejr Date: Thu, 23 Oct 2025 16:51:42 +0800 Subject: [PATCH 27/30] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=A4=BE=E5=8C=BA?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E8=B4=A1=E7=8C=AE=E7=9A=84=E9=BE=99=E8=8A=AF?= =?UTF-8?q?GreatSQL=20Docker=E9=95=9C=E5=83=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GreatSQL/README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/GreatSQL/README.md b/GreatSQL/README.md index 28ba1bf..0172541 100644 --- a/GreatSQL/README.md +++ b/GreatSQL/README.md @@ -41,6 +41,14 @@ docker pull registry.cn-beijing.aliyuncs.com/greatsql/greatsql $ docker pull ccr.ccs.tencentyun.com/greatsql/greatsql ``` +如果是龙芯(Loongson-3A6000)架构环境,可以尝试下面的镜像: + +```bash +docker pull registry.cn-shanghai.aliyuncs.com/annda/greatsql:8.4.4-4 +``` + +**提醒**:这是社区用户 Annda](https://github.com/AnndaGH) 提交的镜像,请自行决定是否使用。 + > 如果提示 timeout 连接超时错误,多重试几次应该就好了。 ## GreatSQL Docker镜像使用 From d9b4453aedfffffb4c46882f4a65a0128d686ca7 Mon Sep 17 00:00:00 2001 From: Yejr Date: Fri, 24 Oct 2025 08:58:31 +0800 Subject: [PATCH 28/30] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=AF=B9JS=E7=BC=96?= =?UTF-8?q?=E8=AF=91=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GreatSQL-Shell-Build/Dockerfile | 3 +- GreatSQL-Shell-Build/docker-entrypoint.sh | 15 ++-- GreatSQL-Shell-Build/greatsqlsh-automake.sh | 82 ++++++++++++--------- GreatSQL-Shell-Build/greatsqlsh-setenv.sh | 15 ++-- 4 files changed, 62 insertions(+), 53 deletions(-) diff --git a/GreatSQL-Shell-Build/Dockerfile b/GreatSQL-Shell-Build/Dockerfile index a683f38..a49f926 100644 --- a/GreatSQL-Shell-Build/Dockerfile +++ b/GreatSQL-Shell-Build/Dockerfile @@ -27,8 +27,7 @@ rm -f /lib/systemd/system/sockets.target.wants/*udev*; \ rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \ rm -f /lib/systemd/system/basic.target.wants/*;\ rm -f /lib/systemd/system/anaconda.target.wants/*; \ -rm -f /etc/yum.repos.d/CentOS-Linux-* ; \ -rm -f /etc/yum.repos.d/CentOS-Stream-* ; \ +rm -f /etc/yum.repos.d/* ; \ curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo > /dev/null 2>&1 && \ sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo > /dev/null 2>&1 && \ dnf -y update > /dev/null 2>&1 ; \ diff --git a/GreatSQL-Shell-Build/docker-entrypoint.sh b/GreatSQL-Shell-Build/docker-entrypoint.sh index 8e5e822..2985877 100755 --- a/GreatSQL-Shell-Build/docker-entrypoint.sh +++ b/GreatSQL-Shell-Build/docker-entrypoint.sh @@ -7,23 +7,22 @@ touch ${MAKELOG} && \ chown ${MYSQL_USER}:${MYSQL_USER} ${MAKELOG} && \ chmod 0777 ${MAKELOG} && \ echo "0.2 install all DEPS(autoconf, gcc ...)" && \ +rm -f /etc/yum.repos.d/CentOS*Linux-* && \ +rm -f /etc/yum.repos.d/CentOS*Stream-* && \ +dnf clean all && dnf makecache && \ dnf install -y ${DEPS} > /dev/null 2>&1 && \ echo 'source /opt/rh/gcc-toolset-11/enable' >> /root/.bash_profile && \ -rm -f /etc/yum.repos.d/CentOS-Linux-* && \ -echo "0.3 download ${YUM_REPOS}.tar.xz and ${V8_LIBS_PKG}.tar.xz" && \ +echo "0.3 download ${YUM_REPOS}.tar.xz" && \ mkdir -p ${OPT_DIR}/${V8_DEPS} && \ wget -c -O ${OPT_DIR}/${V8_DEPS}/${YUM_REPOS}.tar.xz ${GREATSQL_BUILD_DOWNLOAD_URL}/${V8_DEPS}/${YUM_REPOS}.tar.xz >> ${MAKELOG} 2>&1 && \ -wget -c -O ${OPT_DIR}/${V8_DEPS}/${V8_LIBS_PKG}.tar.xz ${GREATSQL_BUILD_DOWNLOAD_URL}/${V8_DEPS}/${V8_LIBS_PKG}.tar.xz >> ${MAKELOG} 2>&1 && \ -echo "0.4 install ${YUM_REPOS} and ${V8_LIBS_PKG}" && \ +echo "0.4 install ${YUM_REPOS}" && \ cd ${OPT_DIR}/${V8_DEPS} && \ tar xf ${YUM_REPOS}*z -C ${OPT_DIR}/${V8_DEPS} && \ -tar xf ${V8_LIBS_PKG}*z -C ${OPT_DIR}/${V8_DEPS} && \ rpm -ivhU --nodeps ${YUM_REPOS}/centos*noarch.rpm >> ${MAKELOG} 2>&1 && \ dnf install -y epel-release >> ${MAKELOG} 2>&1 && \ dnf install -y 'dnf-command(config-manager)' >> ${MAKELOG} 2>&1 && \ dnf config-manager --enable epel-testing epel-modular epel-testing-modular >> ${MAKELOG} 2>&1 && \ rpm -Uvh ${YUM_REPOS}/epel-release*noarch.rpm >> ${MAKELOG} 2>&1 && \ -dnf install -y ${V8_LIBS_PKG}/*rpm >> ${MAKELOG} 2>&1 && \ echo && \ echo "1. downloading sourcecode tarballs and extract" cd ${OPT_DIR} && \ @@ -39,6 +38,8 @@ wget -c -O ${ANTLR}.tar.xz ${GREATSQL_BUILD_DOWNLOAD_URL}/${ANTLR}.tar.xz >> ${M wget -c -O ${BOOST}.tar.gz ${BOOST_SRC_DOWNLOAD_URL}/${BOOST}.tar.gz >> ${MAKELOG} 2>&1 && \ wget -c -O ${MYSQLSH}.tar.gz ${MYSQLSH_SRC_DOWNLOAD_URL}/${MYSQLSH}.tar.gz >> ${MAKELOG} 2>&1 && \ wget -c -O ${MYSQL}.tar.gz ${MYSQL_SRC_DOWNLOAD_URL}/${MYSQL}.tar.gz >> ${MAKELOG} 2>&1 && \ +wget -c -O ${JDK}.tar.gz ${JDK_DOWNLOAD_URL} >> ${MAKELOG} 2>&1 && \ +wget -c -O ${GRAALVM}.tar.gz ${GRAALVM_DOWNLOAD_URL} >> ${MAKELOG} 2>&1 && \ echo " 1.2 extract tarballs ..." && \ tar xf ${OPT_DIR}/${PATCHELF}*z && \ tar xf ${OPT_DIR}/${PROTOBUF}*z && \ @@ -46,6 +47,8 @@ tar xf ${OPT_DIR}/${ANTLR}*z && \ tar xf ${OPT_DIR}/${BOOST}*z && \ tar xf ${OPT_DIR}/${MYSQL}*z && \ tar xf ${OPT_DIR}/${MYSQLSH}*z && \ +tar xf ${OPT_DIR}/${JDK}*z && \ +tar xf ${OPT_DIR}/${GRAALVM}*z && \ chown -R ${MYSQL_USER}:${MYSQL_USER} ${OPT_DIR} && \ dnf install -y ${RPCGEN} >> ${MAKELOG} 2>&1 && \ chmod +x ${OPT_DIR}/*sh && \ diff --git a/GreatSQL-Shell-Build/greatsqlsh-automake.sh b/GreatSQL-Shell-Build/greatsqlsh-automake.sh index 79268b6..5e9b798 100755 --- a/GreatSQL-Shell-Build/greatsqlsh-automake.sh +++ b/GreatSQL-Shell-Build/greatsqlsh-automake.sh @@ -11,10 +11,19 @@ cmake .. -DBOOST_INCLUDE_DIR=${OPT_DIR}/${BOOST} \ -DLOCAL_BOOST_DIR=${OPT_DIR}/${BOOST} \ -DWITH_AUTHENTICATION_KERBEROS=ON \ -DWITH_PROTOBUF=system \ --DWITH_SSL=system >> ${MAKELOG} 2>&1 && \ -cmake --build . --target mysqlclient -- -j${MAKE_JOBS} >> ${MAKELOG} 2>&1 ; \ +-DWITH_SSL=system \ +-DWITH_ZSTD=system \ +>> ${MAKELOG} 2>&1 && \ +cmake --build . --target mysqlclient -- -j${MAKE_JOBS} >> ${MAKELOG} 2>&1 && \ cmake --build . --target mysqlxclient -- -j${MAKE_JOBS} >> ${MAKELOG} 2>&1 && \ -echo " 5.2 compiling MySQL Shell for GreatSQL" && \ +echo " 5.2 prepare jdk" && \ +export GRAALJDK_ROOT=${OPT_DIR}/${JDK} && \ +export JAVA_HOME=${OPT_DIR}/${GRAALVM} && \ +export PATH=$PATH:${OPT_DIR}/${GRAALVM} && \ +cd ${OPT_DIR}/${MYSQLSH}/ext/polyglot && \ +echo " 5.3 mvn package" && \ +mvn package >> ${MAKELOG} 2>&1 && \ +echo " 5.4 compiling MySQL Shell for GreatSQL" && \ cd ${OPT_DIR}/${MYSQLSH} && \ patch -p1 -f < ${OPT_DIR}/${GREATSQLSH_PATCH} >> ${MAKELOG} 2>&1 && \ rm -fr bld && \ @@ -27,39 +36,40 @@ cmake .. \ -DBUILD_SOURCE_PACKAGE=0 \ -DWITH_PROTOBUF=system \ -DHAVE_PYTHON=1 \ --DBUNDLED_ANTLR_DIR=/usr/local/antlr4/ >> ${MAKELOG} 2>&1 && \ +-DBUNDLED_ANTLR_DIR=/usr/local/antlr4/ \ +-DHAVE_JS=ON \ +-DBUNDLED_POLYGLOT_DIR=${OPT_DIR}/${MYSQLSH}/ext/polyglot/polyglot-nativeapi-native-library/target \ +>> ${MAKELOG} 2>&1 && \ make -j${MAKE_JOBS} >> ${MAKELOG} 2>&1 && \ make -j${MAKE_JOBS} install >> ${MAKELOG} 2>&1 && \ -cp /usr/local/lib/libprotobuf.so.30 ${BASE_DIR}/lib/mysqlsh/ && -cp /lib64/libnode.so.93 ${BASE_DIR}/lib/mysqlsh/ && \ -cp /lib64/libbrotlienc.so.1.0.6 ${BASE_DIR}/lib/mysqlsh/libbrotlienc.so.1 && \ -cp /lib64/libbrotlidec.so.1.0.6 ${BASE_DIR}/lib/mysqlsh/libbrotlidec.so.1 && \ -cp /lib64/libuv.so.1.0.0 ${BASE_DIR}/lib/mysqlsh/libuv.so.1 && \ -cp /lib64/libbrotlicommon.so.1.0.6 ${BASE_DIR}/lib/mysqlsh/libbrotlicommon.so.1 && \ -cp /lib64/libssl.so.1.1.1k ${BASE_DIR}/lib/mysqlsh/libssl.so.1.1 && \ -cp /lib64/libcrypto.so.1.1.1k ${BASE_DIR}/lib/mysqlsh/libcrypto.so.1.1 && \ -cp /lib64/libcrypt.so.1.1.0 ${BASE_DIR}/lib/mysqlsh/libcrypt.so.1.1 && \ -cp /lib64/libssh.so.4.8.5 ${BASE_DIR}/lib/mysqlsh/libssh.so.4 && \ -cp /lib64/libpython3.8.so.1.0 ${BASE_DIR}/lib/mysqlsh/ && \ -cp /lib64/libnghttp2.so.14.19.0 ${BASE_DIR}/lib/mysqlsh/libnghttp2.so.14 && \ -cp /lib64/libpcre2-8.so.0.7.1 ${BASE_DIR}/lib/mysqlsh/libpcre2-8.so.0 && \ -cp /lib64/libpthread.so.0 ${BASE_DIR}/lib/mysqlsh/ && \ -cp /lib64/libdl.so.2 ${BASE_DIR}/lib/mysqlsh/ && \ -cp /lib64/libresolv.so.2 ${BASE_DIR}/lib/mysqlsh/ && \ -cp /lib64/librt.so.1 ${BASE_DIR}/lib/mysqlsh/ && \ -cp /lib64/libutil.so.1 ${BASE_DIR}/lib/mysqlsh/ && \ -cp /lib64/libcurl.so.4 ${BASE_DIR}/lib/mysqlsh/ && \ -cp /lib64/libm.so.6 ${BASE_DIR}/lib/mysqlsh/ && \ -cp /lib64/libstdc++.so.6 ${BASE_DIR}/lib/mysqlsh/ && \ -cp /lib64/libgcc_s.so.1 ${BASE_DIR}/lib/mysqlsh/ && \ -cp /lib64/libc.so.6 ${BASE_DIR}/lib/mysqlsh/ && \ -cp /lib64/libz.so.1 ${BASE_DIR}/lib/mysqlsh/ && \ -cp /lib64/libgssapi_krb5.so.2 ${BASE_DIR}/lib/mysqlsh/ && \ -cp /lib64/libkrb5.so.3 ${BASE_DIR}/lib/mysqlsh/ && \ -cp /lib64/libk5crypto.so.3 ${BASE_DIR}/lib/mysqlsh/ && \ -cp /lib64/libcom_err.so.2 ${BASE_DIR}/lib/mysqlsh/ && \ -cp /lib64/libcrypt.so.1 ${BASE_DIR}/lib/mysqlsh/ && \ -cp /lib64/libuuid.so.1 ${BASE_DIR}/lib/mysqlsh/ && \ -cp /lib64/libkrb5support.so.0 ${BASE_DIR}/lib/mysqlsh/ && \ -cp /lib64/libkeyutils.so.1 ${BASE_DIR}/lib/mysqlsh/ && \ +cp /usr/local/lib/libprotobuf.so.30 ${BASE_DIR}/lib/mysqlsh/ ; +cp /lib64/libbrotlienc.so.1.0.6 ${BASE_DIR}/lib/mysqlsh/libbrotlienc.so.1 ; \ +cp /lib64/libbrotlidec.so.1.0.6 ${BASE_DIR}/lib/mysqlsh/libbrotlidec.so.1 ; \ +cp /lib64/libuv.so.1.0.0 ${BASE_DIR}/lib/mysqlsh/libuv.so.1 ; \ +cp /lib64/libbrotlicommon.so.1.0.6 ${BASE_DIR}/lib/mysqlsh/libbrotlicommon.so.1 ; \ +cp /lib64/libssl.so.1.1.1k ${BASE_DIR}/lib/mysqlsh/libssl.so.1.1 ; \ +cp /lib64/libcrypto.so.1.1.1k ${BASE_DIR}/lib/mysqlsh/libcrypto.so.1.1 ; \ +cp /lib64/libcrypt.so.1.1.0 ${BASE_DIR}/lib/mysqlsh/libcrypt.so.1.1 ; \ +cp /lib64/libssh.so.4.8.5 ${BASE_DIR}/lib/mysqlsh/libssh.so.4 ; \ +cp /lib64/libpython3.8.so.1.0 ${BASE_DIR}/lib/mysqlsh/ ; \ +cp /lib64/libpcre2-8.so.0.7.1 ${BASE_DIR}/lib/mysqlsh/libpcre2-8.so.0 ; \ +cp /lib64/libpthread.so.0 ${BASE_DIR}/lib/mysqlsh/ ; \ +cp /lib64/libdl.so.2 ${BASE_DIR}/lib/mysqlsh/ ; \ +cp /lib64/libresolv.so.2 ${BASE_DIR}/lib/mysqlsh/ ; \ +cp /lib64/librt.so.1 ${BASE_DIR}/lib/mysqlsh/ ; \ +cp /lib64/libutil.so.1 ${BASE_DIR}/lib/mysqlsh/ ; \ +cp /lib64/libcurl.so.4 ${BASE_DIR}/lib/mysqlsh/ ; \ +cp /lib64/libm.so.6 ${BASE_DIR}/lib/mysqlsh/ ; \ +cp /lib64/libstdc++.so.6 ${BASE_DIR}/lib/mysqlsh/ ; \ +cp /lib64/libgcc_s.so.1 ${BASE_DIR}/lib/mysqlsh/ ; \ +cp /lib64/libc.so.6 ${BASE_DIR}/lib/mysqlsh/ ; \ +cp /lib64/libz.so.1 ${BASE_DIR}/lib/mysqlsh/ ; \ +cp /lib64/libgssapi_krb5.so.2 ${BASE_DIR}/lib/mysqlsh/ ; \ +cp /lib64/libkrb5.so.3 ${BASE_DIR}/lib/mysqlsh/ ; \ +cp /lib64/libk5crypto.so.3 ${BASE_DIR}/lib/mysqlsh/ ; \ +cp /lib64/libcom_err.so.2 ${BASE_DIR}/lib/mysqlsh/ ; \ +cp /lib64/libcrypt.so.1 ${BASE_DIR}/lib/mysqlsh/ ; \ +cp /lib64/libuuid.so.1 ${BASE_DIR}/lib/mysqlsh/ ; \ +cp /lib64/libkrb5support.so.0 ${BASE_DIR}/lib/mysqlsh/ ; \ +cp /lib64/libkeyutils.so.1 ${BASE_DIR}/lib/mysqlsh/ ; \ cp /lib64/libselinux.so.1 ${BASE_DIR}/lib/mysqlsh/ diff --git a/GreatSQL-Shell-Build/greatsqlsh-setenv.sh b/GreatSQL-Shell-Build/greatsqlsh-setenv.sh index 6458eb5..c1e3784 100755 --- a/GreatSQL-Shell-Build/greatsqlsh-setenv.sh +++ b/GreatSQL-Shell-Build/greatsqlsh-setenv.sh @@ -26,11 +26,13 @@ GREATSQLSH_BUILD_DOWNLOAD_URL="https://gitee.com/GreatSQL/GreatSQL-Docker/raw/gr BOOST_SRC_DOWNLOAD_URL="https://sourceforge.net/projects/boost/files/boost/1.77.0/" MYSQL_SRC_DOWNLOAD_URL="https://downloads.mysql.com/archives/get/p/23/file" MYSQLSH_SRC_DOWNLOAD_URL="https://downloads.mysql.com/archives/get/p/43/file" +JDK_DOWNLOAD_URL="https://github.com/oracle/graal/archive/refs/tags/jdk-23.0.1.zip" +GRAALVM_DOWNLOAD_URL="https://github.com/graalvm/graalvm-ce-builds/releases/download/jdk-23.0.1/graalvm-community-jdk-23.0.1_linux-x64_bin.tar.gz" DEPS="autoconf automake binutils bison cmake cyrus-sasl-devel cyrus-sasl-scram gcc-c++ \ gcc-toolset-11 gcc-toolset-11-annobin-plugin-gcc libcurl-devel libssh libssh-config libssh-devel \ -libtirpc-devel libudev-devel libuuid libuuid-devel m4 make ncurses-devel openssl openssl-devel \ -patch python38 python38-devel python38-libs python38-pyyaml uuid wget zlib-devel brotli brotli-devel nodejs-packaging" \ +libtirpc-devel libudev-devel libuuid libuuid-devel m4 make maven ncurses-devel openssl openssl-devel \ +patch protobuf-lite python38 python38-devel python38-libs python38-pyyaml uuid wget zlib-devel brotli brotli-devel" \ V8_DEPS="deps-v8" YUM_REPOS="yum-repos" @@ -44,10 +46,5 @@ MYSQL_PATCH="mysql-8.4.4.patch" GREATSQLSH_PATCH="mysqlsh-for-greatsql-8.4.4.patch" GREATSQLSH_MAKESH="greatsqlsh-automake.sh" GREATSQLSH_ENV="greatsqlsh-setenv.sh" -if [ "`uname -p`" = "aarch64" ] ; then - RPCGEN="rpcgen-1.3.1-4.el8.aarch64.rpm" - V8_LIBS_PKG="v8-libs-aarch64" -else - RPCGEN="rpcgen-1.3.1-4.el8.x86_64.rpm" - V8_LIBS_PKG="v8-libs-x86_64" -fi +JDK="graal-jdk-23.0.1" +GRAALVM="graalvm-community-openjdk-23.0.1+11.1" From 5cbd1ee4c482bd0c91100a403059df6c1db06842 Mon Sep 17 00:00:00 2001 From: Yejr Date: Fri, 24 Oct 2025 08:59:23 +0800 Subject: [PATCH 29/30] =?UTF-8?q?=E6=9B=B4=E6=96=B0tag=E9=93=BE=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GreatSQL-Build/README.md | 6 ++++-- GreatSQL-Shell/README.md | 7 ++++--- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/GreatSQL-Build/README.md b/GreatSQL-Build/README.md index a4f015f..b33ebbc 100644 --- a/GreatSQL-Build/README.md +++ b/GreatSQL-Build/README.md @@ -17,8 +17,10 @@ ## 支持哪些tag -- [latest](https://hub.docker.com/layers/greatsql/greatsql_build/latest/images/sha256-16c3b1f7336578e9ad96593d8e3b02de032ede456a5f4681f11cff538673bdd8) -- [8.0.32-27](https://hub.docker.com/layers/greatsql/greatsql_build/8.0.32-27/images/sha256-16c3b1f7336578e9ad96593d8e3b02de032ede456a5f4681f11cff538673bdd8) +- [latest](https://hub.docker.com/repository/docker/greatsql/greatsql_build/tags/latest/sha256:8b2a40a07efaafca05ed966f38745f612393ad6febeb81e8f4df4e3f6346589e) +- [8.4.4-4](https://hub.docker.com/repository/docker/greatsql/greatsql_build/tags/8.4.4-4/sha256:8b2a40a07efaafca05ed966f38745f612393ad6febeb81e8f4df4e3f6346589e) +- [8.0.32-27](https://hub.docker.com/repository/docker/greatsql/greatsql_build/tags/8.0.32-27/sha256:16c3b1f7336578e9ad96593d8e3b02de032ede456a5f4681f11cff538673bdd8) +- [8.0.32-26](https://hub.docker.com/repository/docker/greatsql/greatsql_build/tags/8.0.32-26/sha256:2402086558d5913b2f8774c2fe39690237bb90175a22efb022471f0f62c9ac9c) 拉取GreatSQL-Build镜像 diff --git a/GreatSQL-Shell/README.md b/GreatSQL-Shell/README.md index 0e501d8..b9da6ca 100644 --- a/GreatSQL-Shell/README.md +++ b/GreatSQL-Shell/README.md @@ -11,9 +11,10 @@ - 支持CPU架构:x86_64、aarch64 ## 支持哪些tag -- [latest](https://hub.docker.com/layers/greatsql/greatsql_shell/latest/images/sha256-4264884f14341e3b34077c52c2ee7d0d53ce00fb5e45915c3b57e950ef52d80f?context=explore), [8.0.32-25](https://hub.docker.com/layers/greatsql/greatsql_shell/8.0.32-25/images/sha256-4264884f14341e3b34077c52c2ee7d0d53ce00fb5e45915c3b57e950ef52d80f?context=explore) -- [latest-arch64](https://hub.docker.com/layers/greatsql/greatsql_shell/latest-aarch64/images/sha256-46d3d92632256d24078948a81a6750ae808e3c2292c10eb88107633f5bde85ec?context=explore) -- [8.0.32-25-aarch64](https://hub.docker.com/layers/greatsql/greatsql_shell/8.0.32-25-aarch64/images/sha256-46d3d92632256d24078948a81a6750ae808e3c2292c10eb88107633f5bde85ec?context=explore) +- [latest](https://hub.docker.com/repository/docker/greatsql/greatsql_shell/tags/latest/sha256:1a7a88b9923249e793158627acf66986c52156e00798c4c9d3cb5867d35f7e4f) +- [8.4.4-4](https://hub.docker.com/repository/docker/greatsql/greatsql_shell/tags/8.4.4-4/sha256:1a7a88b9923249e793158627acf66986c52156e00798c4c9d3cb5867d35f7e4f) +- [8.0.32-25](https://hub.docker.com/repository/docker/greatsql/greatsql_shell/tags/8.0.32-25/sha256:4264884f14341e3b34077c52c2ee7d0d53ce00fb5e45915c3b57e950ef52d80f) +- [8.0.32-25-aarch64](https://hub.docker.com/repository/docker/greatsql/greatsql_shell/tags/8.0.32-25-aarch64/sha256:46d3d92632256d24078948a81a6750ae808e3c2292c10eb88107633f5bde85ec) 备选阿里云、腾讯云镜像资源地址,支持的 tag 如下: - 阿里云 [latest](registry.cn-beijing.aliyuncs.com/greatsql/greatsql_shell:latest) From def1d8dcfa656ba5d10c195bf4b85d64f797868d Mon Sep 17 00:00:00 2001 From: Yejr Date: Fri, 24 Oct 2025 22:52:59 +0800 Subject: [PATCH 30/30] =?UTF-8?q?=E6=9B=B4=E6=96=B0tag=E9=93=BE=E6=8E=A5?= =?UTF-8?q?=EF=BC=9B=E5=A2=9E=E5=8A=A0=E4=B8=8D=E5=90=8C=E7=BC=96=E8=AF=91?= =?UTF-8?q?=E5=B9=B3=E5=8F=B0=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GreatSQL-Shell-Build/README.md | 9 +++++++-- GreatSQL-Shell-Build/greatsqlsh-setenv.sh | 8 +++++++- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/GreatSQL-Shell-Build/README.md b/GreatSQL-Shell-Build/README.md index cb1652e..4d12a7f 100644 --- a/GreatSQL-Shell-Build/README.md +++ b/GreatSQL-Shell-Build/README.md @@ -6,6 +6,8 @@ 适用于CentOS 8 x86_64/aarch64 环境,更多环境适配请自行修改Dockerfile及相关脚本中的参数。 +**提示**:本项目将不再更新,如果有需要编译 GreatSQL Shell 源码,请参考本项目中的几个编译脚本。 + ## 基本信息 - 维护者: GreatSQL(greatsql@greatdb.com) - 联系我们: greatsql@greatdb.com @@ -13,8 +15,10 @@ - 支持CPU架构:x86_64、aarch64 ## 支持哪些tag -- [latest](https://hub.docker.com/layers/greatsql/greatsql_shell_build/latest/images/sha256-8728758467097c48da15c177bb8692b4e008c3626638a2385b2a6fe4eef44687?context=explore), [8.0.32-25](https://hub.docker.com/layers/greatsql/greatsql_shell_build/8.0.32-25/images/sha256-8728758467097c48da15c177bb8692b4e008c3626638a2385b2a6fe4eef44687?context=explore) -- [latest-arch64](https://hub.docker.com/layers/greatsql/greatsql_shell_build/latest-aarch64/images/sha256-810f6a57cc065aae88c29ffd02fdccdaf383c806414ac3848e43dbedfa5f727c?context=explore), [8.0.32-25-aarch64](https://hub.docker.com/layers/greatsql/greatsql_shell_build/8.0.32-25-aarch64/images/sha256-810f6a57cc065aae88c29ffd02fdccdaf383c806414ac3848e43dbedfa5f727c?context=explore) +- [latest](https://hub.docker.com/repository/docker/greatsql/greatsql_shell_build/tags/latest/sha256:cfa03ed884e3cf9007ed80dc078834f73c892d2c2ed6fb939099b773c37514a8) +- [8.4.4-4](https://hub.docker.com/repository/docker/greatsql/greatsql_shell_build/tags/8.4.4-4/sha256:cfa03ed884e3cf9007ed80dc078834f73c892d2c2ed6fb939099b773c37514a8) +- [8.0.32-25](https://hub.docker.com/repository/docker/greatsql/greatsql_shell_build/tags/8.0.32-25/sha256:8728758467097c48da15c177bb8692b4e008c3626638a2385b2a6fe4eef44687) +- [8.0.32-25-aarch64](https://hub.docker.com/repository/docker/greatsql/greatsql_shell_build/tags/8.0.32-25-aarch64/sha256:810f6a57cc065aae88c29ffd02fdccdaf383c806414ac3848e43dbedfa5f727c) ## 如何使用GreatSQL-Shell-Build @@ -58,6 +62,7 @@ $ docker logs greatsqlsh | tail 6.2 TARBALL file: -rw-r--r-- 1 root root 40284300 Oct 21 09:38 /opt/greatsql-shell-8.4.4-4-glibc2.28-x86_64.tar.xz ``` +**提示**:如果服务器在墙内或内网,可能由于下载部分资源失败而无法完成构建,请手动处理文件下载需求。 接下来回退到宿主机,将容器中的二进制包拷贝出来 diff --git a/GreatSQL-Shell-Build/greatsqlsh-setenv.sh b/GreatSQL-Shell-Build/greatsqlsh-setenv.sh index c1e3784..5b80b00 100755 --- a/GreatSQL-Shell-Build/greatsqlsh-setenv.sh +++ b/GreatSQL-Shell-Build/greatsqlsh-setenv.sh @@ -27,7 +27,6 @@ BOOST_SRC_DOWNLOAD_URL="https://sourceforge.net/projects/boost/files/boost/1.77. MYSQL_SRC_DOWNLOAD_URL="https://downloads.mysql.com/archives/get/p/23/file" MYSQLSH_SRC_DOWNLOAD_URL="https://downloads.mysql.com/archives/get/p/43/file" JDK_DOWNLOAD_URL="https://github.com/oracle/graal/archive/refs/tags/jdk-23.0.1.zip" -GRAALVM_DOWNLOAD_URL="https://github.com/graalvm/graalvm-ce-builds/releases/download/jdk-23.0.1/graalvm-community-jdk-23.0.1_linux-x64_bin.tar.gz" DEPS="autoconf automake binutils bison cmake cyrus-sasl-devel cyrus-sasl-scram gcc-c++ \ gcc-toolset-11 gcc-toolset-11-annobin-plugin-gcc libcurl-devel libssh libssh-config libssh-devel \ @@ -48,3 +47,10 @@ GREATSQLSH_MAKESH="greatsqlsh-automake.sh" GREATSQLSH_ENV="greatsqlsh-setenv.sh" JDK="graal-jdk-23.0.1" GRAALVM="graalvm-community-openjdk-23.0.1+11.1" +if [ "`uname -p`" = "aarch64" ] ; then + RPCGEN="rpcgen-1.3.1-4.el8.aarch64.rpm" + GRAALVM_DOWNLOAD_URL="https://github.com/graalvm/graalvm-ce-builds/releases/download/jdk-23.0.1/graalvm-community-jdk-23.0.1_linux-aarch64_bin.tar.gz" +else + RPCGEN="rpcgen-1.3.1-4.el8.x86_64.rpm" + GRAALVM_DOWNLOAD_URL="https://github.com/graalvm/graalvm-ce-builds/releases/download/jdk-23.0.1/graalvm-community-jdk-23.0.1_linux-x64_bin.tar.gz" +fi