From 540778e53289d5a5095e99b623a403141c09ac49 Mon Sep 17 00:00:00 2001 From: Ye Jinrong Date: Mon, 5 Aug 2024 15:10:19 +0800 Subject: [PATCH 01/71] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=88=B0GreatSQL=208.0?= =?UTF-8?q?.32-26?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GreatSQL/CHANGELOG.md | 44 ++------ GreatSQL/Dockerfile | 7 +- GreatSQL/README.md | 32 ++++-- GreatSQL/greatsql-init.sh | 20 ++-- GreatSQL/greatsql-test.sql | 211 +++++++++++++++++++++---------------- GreatSQL/my.cnf | 155 +++++++++++++++------------ 6 files changed, 263 insertions(+), 206 deletions(-) diff --git a/GreatSQL/CHANGELOG.md b/GreatSQL/CHANGELOG.md index 0ae6841..9f811dc 100644 --- a/GreatSQL/CHANGELOG.md +++ b/GreatSQL/CHANGELOG.md @@ -1,36 +1,14 @@ -# 8.0.32-25 更新日志 +# 8.0.32-26 更新日志 -## 2024.4.16 -* 利用Docker buildx支持多平台构建,不再需要用tag标识区分不同平台。 +## 2024.8.5 +* 默认关闭NUMA -## 2024.3.20 -### 新功能 -* 增加参数MAXPERF,用于设置为最大性能模式(默认);在最大性能模式下,会调大innodb_buffer_pool_size/rapid_memory_limit等多个选项,详见脚本`greatsql-init.sh`中对MAXPERF模式的处理逻辑。 +## 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配置中的参数值 -## 2024.2.20 -### 新功能 -* 改造GreatSQL Docker镜像构造方法,全部从服务器上下载文件,无需从本地拷贝文件。 -* 优化Dockerfile,合并x86_64和aarch64。 -* 增加Rapid引擎功能测试。 - -### 其他更新 -* 修复测试脚本中的转义字符。 -* 将docker-compose挪到本目录下。 - -## 2024.1.19 - -### 新功能 - -* 版本更新到GreatSQL 8.0.32-25。 -* 支持表名大小写自定义选项。 -* 新增greatsql-test.sql自测试脚本。 -* 支持挂载外部my.cnf文件,[ISSUE#I8VFGR](https://gitee.com/GreatSQL/GreatSQL-Docker/issues/I8VFGR)。 -* 新增group_replication_recovery_get_public_key = 1设置,避免在caching_sha2_password plugin模式下MGR通信异常。 -* 初始化完毕后执行update更新;改用RPM包来构建;合并EVN及其他操作减少镜像层数;对应[ISSUE#I8WSOQ](https://gitee.com/GreatSQL/GreatSQL-Docker/issues/I8VFGR)。 - -### 其他更新 - -* 修复一个不太友好的报错提醒。 -* 修改客户端prompt,最后加一个空格,更美观。 - -[8.0.32-25]: https://gitee.com/GreatSQL/GreatSQL-Docker/tree/greatsql-8.0.32-25/GreatSQL +[8.0.32-26]: https://gitee.com/GreatSQL/GreatSQL-Docker/tree/greatsql-8.0.32-26/GreatSQL diff --git a/GreatSQL/Dockerfile b/GreatSQL/Dockerfile index c03066f..a6c9891 100644 --- a/GreatSQL/Dockerfile +++ b/GreatSQL/Dockerfile @@ -1,4 +1,5 @@ FROM centos +#FROM registry.cn-beijing.aliyuncs.com/greatsql/centos LABEL maintainer="greatsql.cn" \ email="greatsql@greatdb.com" \ @@ -16,14 +17,14 @@ MYSQL_PORT=3306 \ DEPS="pkg-config perl libaio-devel numactl-devel numactl-libs \ net-tools openssl openssl-devel perl-Data-Dumper perl-Digest-MD5 \ python2 perl-JSON perl-Test-Simple" \ -GREATSQL_DOCKER_DOWNLOAD_URL="https://gitee.com/GreatSQL/GreatSQL-Docker/raw/greatsql-8.0.32-25/GreatSQL" \ +GREATSQL_DOCKER_DOWNLOAD_URL="https://gitee.com/GreatSQL/GreatSQL-Docker/raw/greatsql-8.0.32-26/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-25-Rapid" +GREATSQL_DOWNLOAD_URL="https://product.greatdb.com/GreatSQL-8.0.32-26" -ENV GREATSQL_PKG="greatsql-8.0.32-25.1.el8.${TARGETARCH}.rpm-bundle.tar.xz" +ENV GREATSQL_PKG="greatsql-8.0.32-26.1.el8.${TARGETARCH}.rpm-bundle.tar.xz" CMD /bin/bash diff --git a/GreatSQL/README.md b/GreatSQL/README.md index 6aaf990..a5aef4d 100644 --- a/GreatSQL/README.md +++ b/GreatSQL/README.md @@ -10,14 +10,28 @@ ## 基本信息 - 维护者: GreatSQL(greatsql@greatdb.com) - 联系我们:greatsql@greatdb.com -- 最新版本:GreatSQL 8.0.32-25 -- 最后更新时间:2024-03-20 -- 支持CPU架构:x86_64、aarch64 +- 最新版本:GreatSQL 8.0.32-26 +- 最后更新时间:2024-08-05 ## 支持哪些tag -- [latest](https://hub.docker.com/layers/greatsql/greatsql/latest/images/sha256-6a01d0b1b9107b286601249202803da5b08e9f729b8727f691ce423928994eef?context=repo), [8.0.32-25](https://hub.docker.com/layers/greatsql/greatsql/8.0.32-25/images/sha256-6a01d0b1b9107b286601249202803da5b08e9f729b8727f691ce423928994eef?context=repo), [8.0.32-24](https://hub.docker.com/layers/greatsql/greatsql/8.0.32-24/images/sha256-0d1ee8a01e4dec5d3698053319978c1817ca455eb6a11de9fa7e13b747fa9f3e?context=repo), [8.0.25-16](https://hub.docker.com/layers/greatsql/greatsql/greatsql/8.0.25-16/images/sha256-03969daaaaaeb0f51dde0c9e92ef327302607cdde3afbe5c2b071098000c52c1?context=explore) -- [latest](https://hub.docker.com/layers/greatsql/greatsql/latest/images/sha256-6a01d0b1b9107b286601249202803da5b08e9f729b8727f691ce423928994eef?context=repo), [8.0.32-25](https://hub.docker.com/layers/greatsql/greatsql/8.0.32-25/images/sha256-6a01d0b1b9107b286601249202803da5b08e9f729b8727f691ce423928994eef?context=repo), [8.0.32-24-arch64](https://hub.docker.com/layers/greatsql/greatsql/8.0.32-24-aarch64/images/sha256-97dfa7074a1c5b2e0355fcf5fc829e8074edca6db7c2e528059786fb0c48a523?context=repo), [8.0.25-16-aarch64](https://hub.docker.com/layers/greatsql/greatsql/8.0.25-16-aarch64/images/sha256-c4664d2b84025ed2487d0aecb6090ab9bb0f7ee2033afd9a079ea4f1f9f82b52?context=repo) +- [latest](https://hub.docker.com/layers/greatsql/greatsql/latest/images/sha256-08b3addca1dd3f87e54b476822d67ecefc0128f7f294d8969f6fff5b47d1938c) +- [8.0.32-26](https://hub.docker.com/layers/greatsql/greatsql/8.0.32-26/images/sha256-08b3addca1dd3f87e54b476822d67ecefc0128f7f294d8969f6fff5b47d1938c) +- [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) + +如果无法从 hub.docker.com 拉取,可以尝试从阿里云ACR拉取,例如: + +```shell +$ docker pull registry.cn-beijing.aliyuncs.com/greatsql/greatsql + +$ docker pull registry.cn-beijing.aliyuncs.com/greatsql/greatsql:8.0.32-26 +``` + +> 如果提示 timeout 连接超时错误,多重试几次应该就好了。 ## GreatSQL Docker镜像使用 @@ -67,20 +81,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-25 GreatSQL, Release 25, Revision db07cc5cb73 +Server version: 8.0.32-26 GreatSQL, Release 26, Revision a68b3034c3d ... -mysql Ver 8.0.32-24 for Linux on x86_64 (GreatSQL (GPL), Release 24, Revision c2e83f27394) +mysql Ver 8.0.32-26 for Linux on x86_64 (GreatSQL (GPL), Release 26, Revision a68b3034c3d) ... [root@GreatSQL][(none)]> \s ... -Server version: 8.0.32-25 GreatSQL, Release 25, Revision db07cc5cb73 +Server version: 8.0.32-26 GreatSQL, Release 26, Revision a68b3034c3d ... [root@GreatSQL][(none)]> SELECT version(); +-----------+ | version() | +-----------+ -| 8.0.32-25 | +| 8.0.32-26 | +-----------+ 1 row in set (0.00 sec) diff --git a/GreatSQL/greatsql-init.sh b/GreatSQL/greatsql-init.sh index 5ecf665..0a84e20 100755 --- a/GreatSQL/greatsql-init.sh +++ b/GreatSQL/greatsql-init.sh @@ -160,23 +160,29 @@ if [ "$1" = 'mysqld' -a -z "$wantHelp" ]; then file_env 'MYSQL_MGR_ARBITRATOR' if [ "${MYSQL_MGR_ARBITRATOR}" ] ; then if [ ${MYSQL_MGR_ARBITRATOR} -eq 1 ]; then - echo "$(sed "s/MYSQL_MGR_ARBITRATOR/1/ig" /etc/my.cnf)" > /etc/my.cnf + echo "$(sed "s/MYSQL_MGR_ARBITRATOR/ON/ig" /etc/my.cnf)" > /etc/my.cnf else - echo "$(sed "s/MYSQL_MGR_ARBITRATOR/0/ig" /etc/my.cnf)" > /etc/my.cnf + echo "$(sed "s/MYSQL_MGR_ARBITRATOR/OFF/ig" /etc/my.cnf)" > /etc/my.cnf fi else - echo "$(sed "s/MYSQL_MGR_ARBITRATOR/0/ig" /etc/my.cnf)" > /etc/my.cnf + echo "$(sed "s/MYSQL_MGR_ARBITRATOR/OFF/ig" /etc/my.cnf)" > /etc/my.cnf fi file_env 'MYSQL_MGR_MULTI_PRIMARY' if [ "$MYSQL_MGR_MULTI_PRIMARY" ]; then if [ ${MYSQL_MGR_MULTI_PRIMARY} -eq 1 ]; then - echo "$(sed "s/SINGLE_PRIMARY/0/g" /etc/my.cnf)" > /etc/my.cnf + echo "$(sed "s/SINGLE_PRIMARY/OFF/g" /etc/my.cnf)" > /etc/my.cnf + echo "$(sed "s/EVERYWHERE_CHECKS/ON/g" /etc/my.cnf)" > /etc/my.cnf + echo "$(sed "s/FAST_MODE/0/g" /etc/my.cnf)" > /etc/my.cnf else - echo "$(sed "s/SINGLE_PRIMARY/1/g" /etc/my.cnf)" > /etc/my.cnf + echo "$(sed "s/SINGLE_PRIMARY/ON/g" /etc/my.cnf)" > /etc/my.cnf + echo "$(sed "s/EVERYWHERE_CHECKS/OFF/g" /etc/my.cnf)" > /etc/my.cnf + echo "$(sed "s/FAST_MODE/1/g" /etc/my.cnf)" > /etc/my.cnf fi else - echo "$(sed "s/SINGLE_PRIMARY/1/g" /etc/my.cnf)" > /etc/my.cnf + echo "$(sed "s/SINGLE_PRIMARY/ON/g" /etc/my.cnf)" > /etc/my.cnf + echo "$(sed "s/EVERYWHERE_CHECKS/OFF/g" /etc/my.cnf)" > /etc/my.cnf + echo "$(sed "s/FAST_MODE/1/g" /etc/my.cnf)" > /etc/my.cnf fi mkdir -p "$DATADIR" @@ -250,7 +256,7 @@ if [ "$1" = 'mysqld' -a -z "$wantHelp" ]; then fi read -r -d '' mgrInit <<-EOSQL || true - CREATE USER IF NOT EXISTS ${MYSQL_MGR_USER} IDENTIFIED WITH mysql_native_password BY '${MYSQL_MGR_USER_PWD}'; + CREATE USER IF NOT EXISTS ${MYSQL_MGR_USER} IDENTIFIED BY '${MYSQL_MGR_USER_PWD}'; GRANT REPLICATION SLAVE, BACKUP_ADMIN ON *.* TO ${MYSQL_MGR_USER}; CHANGE MASTER TO MASTER_USER='${MYSQL_MGR_USER}', MASTER_PASSWORD='${MYSQL_MGR_USER_PWD}' FOR CHANNEL 'group_replication_recovery'; EOSQL diff --git a/GreatSQL/greatsql-test.sql b/GreatSQL/greatsql-test.sql index 28e39ab..419d20b 100644 --- a/GreatSQL/greatsql-test.sql +++ b/GreatSQL/greatsql-test.sql @@ -1,6 +1,6 @@ -- -- greatsql-test.sql --- GreatSQL 主要功能特性自测脚本,适配版本:8.0.32-25 +-- GreatSQL 主要功能特性自测脚本,适配版本:8.0.32-26 -- -- -- 主要测试项 @@ -16,6 +16,18 @@ -- 当检查结果输出内容包含 OK 时,表示检查结果正确 -- 当检查结果输出内容包含 NG(NOT GOOD缩写) 时,表示检查结果异常,需要人为再确认 -- +-- CHANGELOG +-- # 2024.7.29 +-- 1. 升级到 GreatSQL 8.0.32-26 +-- 2. 针对以下几个新特性做校验 +-- - 支持Clone复制时设置Donor GTID延迟阈值 +-- - 支持Clone压缩、增量备份 +-- - 支持Binlog读取限速 +-- - 支持非阻塞式DDL +-- - 支持NUMA亲和性优化 +-- - 支持无主键并发LOAD DATA优化 +-- - 支持用户的登录信息记录 +-- - 支持基于策略的数据脱敏 -- -- CHANGELOG -- # 2024.6.5 @@ -26,34 +38,23 @@ --- 1. VERSION +-- 1. 版本号 SELECT '--- 1. checking VERSION() ---' AS STAGE_1; --- SELECT 'SELECT @@version FROM DUAL;' AS EXEC_TEST_SQL; -SELECT IF(@@version = '8.0.32-25', "OK: VERSION IS 8.0.32-25", "NG, VERSION IS NOT 8.0.32-25") AS '1.1 check: VERSION' FROM DUAL; +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 ' ' FROM DUAL; --- SELECT 'SELECT @@version_comment FROM DUAL;' AS EXEC_TEST_SQL; -SELECT IF(@@version_comment LIKE 'GreatSQL%25%79f57097e3f', "OK, Revision IS 79f57097e3f", "NG, Revision IS NOT 79f57097e3f") AS '1.2 check: VERSION_COMMENT' 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 ' ' FROM DUAL; SELECT ' ' FROM DUAL; --- 2. DDL & DML for Oracle compatibility + +-- 2. Oracle兼容性 SELECT '--- 2. checking CREATE NEW DB & TABLE, INSERT & SELECT ROWS & Oracle compatibility ---' AS STAGE_2; --- SELECT 'CREATE DATABASE IF NOT EXISTS greatsql_803225 CHARACTER SET utf8mb4;' AS EXEC_TEST_SQL; -CREATE DATABASE IF NOT EXISTS greatsql_803225 CHARACTER SET utf8mb4; - --- SELECT 'USE greatsql_803225;' AS EXEC_TEST_SQL; -USE greatsql_803225; - --- SELECT ' --- CREATE TABLE t_803225( --- 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;' AS EXEC_TEST_SQL; -CREATE TABLE t_803225( +-- CREATE DB & TABLE +CREATE DATABASE IF NOT EXISTS greatsql_803226 CHARACTER SET utf8mb4; +USE greatsql_803226; + +CREATE TABLE t_803226( id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, c1 CLOB NOT NULL, c2 VARCHAR2(30) NOT NULL DEFAULT '', @@ -61,12 +62,8 @@ c3 NUMBER UNSIGNED NOT NULL DEFAULT 0, c4 PLS_INTEGER UNSIGNED NOT NULL DEFAULT 0 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; --- SELECT 'SHOW CREATE TABLE t_803225\\G' AS EXEC_TEST_SQL; --- SHOW CREATE TABLE t_803225\G - --- SELECT 'INSERT INTO t_803225 VALUES --- (?, rand(), rand(), ROUND(RAND()*1024000), ROUND(RAND()*1024000)) ... ' AS EXEC_TEST_SQL; -INSERT INTO t_803225 VALUES +-- INSERT ROWS +INSERT INTO t_803226 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)), @@ -78,73 +75,71 @@ SELECT ' ' FROM DUAL; SELECT ' ' FROM DUAL; --- 3. Oracle syntax -SELECT '--- 3. checking SELECT ANY/ALL FROM t_803225 ---' AS STAGE_3; --- SELECT 'SELECT * FROM t_803225 WHERE id < ALL(4,8,16);' AS EXEC_TEST_SQL; -SELECT COUNT(*) INTO @ROWS FROM t_803225 WHERE id < ALL(4,8,16); +-- 3. Oracle语法 +SELECT '--- 3. checking SELECT ANY/ALL FROM t_803226 ---' AS STAGE_3; +-- ALL Syntax +SELECT COUNT(*) INTO @ROWS FROM t_803226 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; --- SELECT 'SELECT * FROM t_803225 WHERE id < ANY(4,8,16);' AS EXEC_TEST_SQL; -SELECT COUNT(*) INTO @ROWS FROM t_803225 WHERE id < ANY(4,8,16); +-- ANY Syntax +SELECT COUNT(*) INTO @ROWS FROM t_803226 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; --- SELECT 'DROP TABLE IF EXISTS t_803225;'; -DROP TABLE IF EXISTS t_803225; - --- SELECT '--- SELECT SYSDATE IN DEFAULT MODE ---'; --- SELECT 'SELECT SYSDATE(), SYSDATE;' AS EXEC_TEST_SQL; --- SET sql_mode = DEFAULT; --- SELECT SYSDATE(), SYSDATE; +-- DROP TABLE +DROP TABLE IF EXISTS t_803226; --- SELECT '--- SELECT SYSDATE IN ORACLE MODE ---'; --- SELECT 'SET sql_mode = ORACLE;' AS EXEC_TEST_SQL; +-- 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; SELECT ' ' FROM DUAL; SELECT '3.4 check: SYSDATE IN ORACLE MODE' AS '3.4 check: SYSDATE IN ORACLE MODE' FROM DUAL; --- SELECT 'SELECT SYSDATE(), SYSDATE;' AS EXEC_TEST_SQL; + +-- SYSDATE SELECT SYSDATE(), SYSDATE; SELECT ' ' FROM DUAL; --- SELECT 'SET sql_mode = DEFAULT;' AS EXEC_TEST_SQL; +-- SET SQL_MODE = DEFAULT SET sql_mode = DEFAULT; SELECT IF(@@sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION', 'OK, DEFAULT MODE RESET SUCC', 'NG, DEFAULT MODE RESET FAIL') AS '3.5 check: SQL_MODE' FROM DUAL; SELECT ' ' FROM DUAL; SELECT ' ' FROM DUAL; +-- DECLARE...BEGIN Syntax +SELECT ' ' FROM DUAL; +SELECT '3.6 check: DECLARE...BEGIN Syntax' AS '3.6 check: DECLARE...BEGIN Syntax' FROM DUAL; +SET sql_mode = ORACLE; +DELIMITER // +DECLARE +BEGIN + SELECT 'Hi GreatSQL' INTO @ret; +END; // +DELIMITER ; +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 ENGINE + +-- 4. Rapid引擎 SELECT '--- 4. checking RAPID ENGINE ---' AS STAGE_4; --- SELECT 'INSTALL PLUGIN Rapid SONAME "ha_rapid.so"'; -INSTALL PLUGIN Rapid SONAME 'ha_rapid.so'; --- SELECT 'SELECT ENGINE FROM ENGINES WHERE ENGINE = 'Rapid' AND SUPPORT = 'YES';'; +-- INSTALL & CHECK Rapid ENGINE +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; --- SELECT ' --- CREATE TABLE `t_803225_rapid` ( --- `id` int unsigned NOT NULL AUTO_INCREMENT, --- `c1` int unsigned NOT NULL DEFAULT \'0\', --- `c2` varchar(30) NOT NULL DEFAULT \'\', --- PRIMARY KEY (`id`) --- ) ENGINE=InnoDB;'; - -CREATE TABLE `t_803225_rapid` ( +CREATE TABLE `t_803226_rapid` ( `id` int unsigned NOT NULL AUTO_INCREMENT, `c1` int unsigned NOT NULL DEFAULT '0', `c2` varchar(30) NOT NULL DEFAULT '', PRIMARY KEY (`id`) ) ENGINE=InnoDB; +-- SECONDARY_ENGINE +ALTER TABLE t_803226_rapid SECONDARY_ENGINE = rapid; --- SELECT 'ALTER TABLE t_803225_rapid SECONDARY_ENGINE = rapid;'; -ALTER TABLE t_803225_rapid SECONDARY_ENGINE = rapid; - --- SELECT 'INSERT INTO t_803225_rapid VALUES(?, RAND()*1024000, RAND()*1024000) ... ' AS EXEC_TEST_SQL; -INSERT INTO t_803225_rapid VALUES +-- INSERT ROWS +INSERT INTO t_803226_rapid VALUES (1, RAND()*1024000, RAND()*1024000), (2, RAND()*1024000, RAND()*1024000), (4, RAND()*1024000, RAND()*1024000), @@ -154,55 +149,56 @@ INSERT INTO t_803225_rapid VALUES SELECT IF(ROW_COUNT() = 6, 'OK, INSERT 6 ROWS', CONCAT('NG, INSERT ', ROW_COUNT(), ' ROWS')) AS '4.2 check: INSERT_ROWS' FROM DUAL; SELECT ' ' FROM DUAL; --- SELECT 'ALTER TABLE t_803225_rapid SECONDARY_LOAD;'; -ALTER TABLE t_803225_rapid SECONDARY_LOAD; +-- SECONDARY_LOAD +ALTER TABLE t_803226_rapid SECONDARY_LOAD; --- SELECT 'SHOW CREATE TABLE t_803225_rapid\\G'; --- SHOW CREATE TABLE t_803225_rapid\G - --- SELECT 'SHOW TABLE STATUS like \'t_803225_rapid\'\\G'; --- SHOW TABLE STATUS like 't_803225_rapid'\G -SELECT IF(CREATE_OPTIONS = 'SECONDARY_ENGINE="rapid" SECONDARY_LOAD="1"', "OK, t_803225_rapid IS A Rapid TABLE", "NG, t_803225_rapid IS NOT A Rapid TABLE") AS '4.3 check: t_803225_rapid' FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'greatsql_803225' AND TABLE_NAME = 't_803225_rapid'; +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 ' ' FROM DUAL; --- SELECT 'SET use_secondary_engine = ON; SET secondary_engine_cost_threshold = 0;'; --- SET use_secondary_engine = ON; SET secondary_engine_cost_threshold = 0; - --- SELECT 'EXPLAIN SELECT * FROM t_803225_rapid;'; +-- 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_803225_rapid; +EXPLAIN SELECT /*+ SET_VAR(use_secondary_engine=2) SET_VAR(secondary_engine_cost_threshold=0) */ * FROM t_803226_rapid; SELECT ' ' FROM DUAL; --- SELECT 'SELECT COUNT(*) FROM t_803225_rapid;'; -SELECT /*+ SET_VAR(use_secondary_engine=1) SET_VAR(secondary_engine_cost_threshold=0) */ COUNT(*) INTO @ROWS FROM t_803225_rapid; +-- 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 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; --- 5. parallel load data +-- 5. 并行LOAD DATA SELECT '--- 5. checking PARALLEL LOAD DATA ---' AS STAGE_5; --- SELECT VARIABLE_NAME FROM performance_schema.global_variables WHERE VARIABLE_NAME = 'gdb_parallel_load_workers'; -SELECT IF(VARIABLE_NAME = "gdb_parallel_load_workers", "OK, PARALLEL LOAD DATA", "NG, PARALLEL LOAD DATA") AS 'check: PARALLEL LOAD DATA' FROM performance_schema.global_variables where variable_name = 'gdb_parallel_load_workers'; +SELECT IF(VARIABLE_NAME = "gdb_parallel_load_workers", "OK, PARALLEL LOAD DATA", "NG, PARALLEL LOAD DATA") AS '5.1 check: PARALLEL LOAD DATA' FROM performance_schema.global_variables where variable_name = 'gdb_parallel_load_workers'; +SELECT ' ' FROM DUAL; + +-- 支持无主键并发LOAD DATA优化 +SELECT IF(VARIABLE_NAME = "innodb_optimize_no_pk_parallel_load", "OK, PARALLEL LOAD DATA OPTIMIZE WHEN NON-PK", "NG, PARALLEL LOAD DATA OPTIMIZE WHEN NON-PK") AS '5.2 check: PARALLEL LOAD DATA OPTIMIZE WHEN NON-PK' FROM performance_schema.global_variables where variable_name = 'innodb_optimize_no_pk_parallel_load'; SELECT ' ' FROM DUAL; SELECT ' ' FROM DUAL; --- 6. clone encrypt +-- 6. Clone功能 SELECT '--- 6. checking clone encrypt ---' AS STAGE_6; --- SELECT 'INSTALL PLUGIN CLONE SONAME "mysql_clone.so"'; INSTALL PLUGIN CLONE SONAME 'mysql_clone.so'; -SELECT IF(PLUGIN_NAME = 'clone', 'OK, PLUGIN clone ACTIVE', 'NG, PLUGIN clone NOT ACTIVE') AS 'check: clone PLUGIN' FROM information_schema.PLUGINS WHERE PLUGIN_NAME = 'clone' AND PLUGIN_STATUS = "ACTIVE"; +SELECT IF(PLUGIN_NAME = 'clone', 'OK, PLUGIN clone ACTIVE', 'NG, PLUGIN Clone NOT ACTIVE') AS 'check: Clone PLUGIN' FROM information_schema.PLUGINS WHERE PLUGIN_NAME = 'clone' AND PLUGIN_STATUS = "ACTIVE"; SELECT ' ' FROM DUAL; -SELECT IF(VARIABLE_NAME = "clone_encrypt_key_path", "OK, SUPPORT clone encrypt", "NG, NOT SUPPORT clone encrypt") AS 'check: PARALLEL LOAD DATA' FROM performance_schema.global_variables where variable_name = 'clone_encrypt_key_path'; +SELECT IF(VARIABLE_NAME = "clone_encrypt_key_path", "OK, SUPPORT Clone encrypt", "NG, NOT SUPPORT Clone encrypt") AS 'check: Clone encrypt' FROM performance_schema.global_variables where variable_name = 'clone_encrypt_key_path'; SELECT ' ' FROM DUAL; + +INSTALL COMPONENT "file://component_mysqlbackup"; +SELECT IF(component_urn = 'file://component_mysqlbackup', "OK, SUPPORT Clone increment backup", "NG, NOT SUPPORT Clone increment backup") AS "check: Clone increment backup" FROM mysql.component WHERE component_urn = 'file://component_mysqlbackup'; 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; --- 7. MGR +-- 7. MGR特性 SELECT '--- 7. checking MGR ---' AS STAGE_7; -- SELECT 'INSTALL PLUGIN group_replication SONAME "group_replication.so"'; INSTALL PLUGIN group_replication SONAME "group_replication.so"; +SET GLOBAL super_read_only = OFF; -- zone id SELECT IF(VARIABLE_NAME = "group_replication_zone_id", "OK, SUPPORT MGR zone_id", "NG, NOT SUPPORT MGR zone_id") AS '7.1 check: MGR zone_id' FROM performance_schema.global_variables where variable_name = 'group_replication_zone_id'; @@ -214,6 +210,9 @@ SELECT ' ' FROM DUAL; SELECT IF(VARIABLE_NAME = "group_replication_primary_election_mode", "OK, SUPPORT MGR elect_mode", "NG, NOT SUPPORT MGR elect_mode") AS '7.3 check: MGR elect_mode' FROM performance_schema.global_variables where variable_name = 'group_replication_primary_election_mode'; SELECT ' ' FROM DUAL; +SELECT IF(VARIABLE_NAME = "group_replication_donor_threshold", "OK, SUPPORT MGR Donor threshold", "NG, NOT SUPPORT MGR Donor threshold") AS '7.4 check: MGR Donor threshold' FROM performance_schema.global_variables where variable_name = 'group_replication_donor_threshold'; +SELECT ' ' FROM DUAL; + -- SELECT '--- checking greatdb_ha ---'; -- SELECT 'INSTALL PLUGIN greatdb_ha SONAME "greatdb_ha.so"'; INSTALL PLUGIN greatdb_ha SONAME "greatdb_ha.so"; @@ -222,8 +221,42 @@ 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; --- 8. cleanup -SELECT '--- 8. clean up ---' AS STAGE_8; -DROP DATABASE IF EXISTS greatsql_803225; +-- 8. 安全特性检查 +-- 支持审计日志写表 & 用户的登录信息记录 +-- basedir=/usr, REPLACE IF NEEDED +SOURCE /usr/share/mysql/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; + +SELECT IF(name = 'audit_login_messages', "OK, SUPPORT last login msg", "NG, NOT SUPPORT last login msg") AS '8.2 check: last login msg' FROM mysql.func WHERE name = 'audit_login_messages'; +SELECT ' ' FROM DUAL; + +-- 支持基于策略的数据脱敏 +-- basedir=/usr, REPLACE IF NEEDED +SOURCE /usr/share/mysql/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; + + +-- 9. 优化功能检查 +-- 支持非阻塞式DDL +SELECT IF(VARIABLE_NAME = "lock_ddl_polling_mode", "OK, nonblocking DDL", "NG, NOT SUPPORT nonblocking DDL") AS '9.1 check: nonblocking DDL' FROM performance_schema.global_variables where variable_name = 'lock_ddl_polling_mode'; +SELECT ' ' FROM DUAL; + +-- 支持NUMA亲和性优化 +SELECT IF(VARIABLE_NAME = "sched_affinity_numa_aware", "OK, affinity_numa_aware", "NG, NOT SUPPORT affinity_numa_aware") AS '9.2 check: affinity_numa_aware' FROM performance_schema.global_variables where variable_name = 'sched_affinity_numa_aware'; +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 ' ' FROM DUAL; + + +-- 10. 清理 +SELECT '--- 8. clean up ---' AS STAGE_8; +DROP DATABASE IF EXISTS greatsql_803226; diff --git a/GreatSQL/my.cnf b/GreatSQL/my.cnf index 809e657..0f6001f 100644 --- a/GreatSQL/my.cnf +++ b/GreatSQL/my.cnf @@ -1,10 +1,16 @@ -#my.cnf +# +# my.cnf example for GreatSQL 8.0.32-26 +# +# 下面参数选项设置仅作为参考,假定服务器配置为128C256G +# [client] 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 @@ -14,13 +20,13 @@ datadir = /data/GreatSQL socket = /data/GreatSQL/mysql.sock pid-file = mysql.pid character-set-server = UTF8MB4 -skip_name_resolve = 1 -#若你的MySQL数据库主要运行在境外,请务必根据实际情况调整本参数 +skip_name_resolve = ON default_time_zone = "+8:00" -#表名大小写设定,非常重要,初始化完后不能再修改,通常建议设置为1 +bind_address = "0.0.0.0" +secure_file_priv = /data/GreatSQL lower_case_table_names = LOWER_CASE_TABLE_NAMES -#performance setttings +# Performance lock_wait_timeout = 3600 open_files_limit = 65535 back_log = 1024 @@ -28,7 +34,6 @@ max_connections = 512 max_connect_errors = 1000000 table_open_cache = 1024 table_definition_cache = 1024 -thread_stack = 512K sort_buffer_size = 4M join_buffer_size = 4M read_buffer_size = 8M @@ -39,121 +44,141 @@ interactive_timeout = 600 wait_timeout = 600 tmp_table_size = 32M max_heap_table_size = 32M -temptable_max_ram = 1G +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 -#log settings +# Logs log_timestamps = SYSTEM -log_error = /data/GreatSQL/error.log +log_error = error.log log_error_verbosity = 3 -slow_query_log = 1 -log_slow_extra = 1 -slow_query_log_file = /data/GreatSQL/slow.log -long_query_time = 0.1 -log_queries_not_using_indexes = 1 +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 = 1 -log_slow_slave_statements = 1 -log_bin = /data/GreatSQL/binlog +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_rows_query_log_events = 1 +binlog_space_limit = 500G +binlog_rows_query_log_events = ON binlog_expire_logs_seconds = 604800 -#MySQL 8.0.22前,想启用MGR的话,需要设置binlog_checksum=NONE才行 binlog_checksum = CRC32 gtid_mode = ON -enforce_gtid_consistency = TRUE - -#myisam settings -key_buffer_size = 32M -myisam_sort_buffer_size = 128M +enforce_gtid_consistency = ON -#replication settings -#master_info_repository = TABLE -#relay_log_info_repository = TABLE -relay_log_recovery = 1 -slave_parallel_type = LOGICAL_CLOCK -#可以设置为逻辑CPU数量的2倍 -slave_parallel_workers = 4 +# Replication +relay-log = relaylog +relay_log_recovery = ON +replica_parallel_type = LOGICAL_CLOCK +replica_parallel_workers = 4 binlog_transaction_dependency_tracking = WRITESET -slave_preserve_commit_order = 1 -slave_checkpoint_period = 2 +replica_preserve_commit_order = ON +replica_checkpoint_period = 2 +loose-rpl_read_binlog_speed_limit = 100 -#parallel query -loose-force_parallel_execute = ON +# Disalbe InnoDB PQ +loose-force_parallel_execute = OFF -#parallel load data -loose-gdb_parallel_load = 1 +# Parallel LOAD DATA +loose-gdb_parallel_load = ON +loose-innodb_optimize_no_pk_parallel_load = ON -#rapid engine +# 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 -#mgr settings +# Clone 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 -#MGR本地节点IP:PORT,请自行替换 loose-group_replication_local_address = MYSQL_MGR_LOCAL -#MGR集群所有节点IP:PORT,请自行替换 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 = SINGLE_PRIMARY +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 = 30 +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 = 1 +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 -#innodb settings +# 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_log_file_size = 48M -#innodb_log_files_in_group = 3 -innodb_redo_log_capacity = 8M +innodb_redo_log_capacity = 128M innodb_doublewrite_files = 2 innodb_max_undo_log_size = 4G -# 根据您的服务器IOPS能力适当调整 -# 一般配普通SSD盘的话,可以调整到 10000 - 20000 -# 配置高端PCIe SSD卡的话,则可以调整的更高,比如 50000 - 80000 innodb_io_capacity = 4000 innodb_io_capacity_max = 8000 innodb_open_files = 65534 -#innodb_flush_method = O_DIRECT +innodb_flush_method = O_DIRECT innodb_lru_scan_depth = 4000 innodb_lock_wait_timeout = 10 -innodb_rollback_on_timeout = 1 -innodb_print_all_deadlocks = 1 +innodb_rollback_on_timeout = ON +innodb_print_all_deadlocks = ON innodb_online_alter_log_max_size = 4G -innodb_print_ddl_logs = 0 -innodb_status_file = 1 -#注意: 开启 innodb_status_output & innodb_status_output_locks 后, 可能会导致log_error文件增长较快 -innodb_status_output = 0 -innodb_status_output_locks = 1 -innodb_sort_buffer_size = 67108864 +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 monitor settings +# 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 settings -performance_schema = 1 +# PFS +#performance_schema = 1 #performance_schema_instrument = '%memory%=on' -performance_schema_instrument = '%lock%=on' +#performance_schema_instrument = '%lock%=on' From 067d6298242dbf0fd30fc63e7f9eae9578af3e26 Mon Sep 17 00:00:00 2001 From: Ye Jinrong Date: Mon, 5 Aug 2024 15:12:51 +0800 Subject: [PATCH 02/71] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=88=B0GreatSQL=208.0?= =?UTF-8?q?.32-26?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GreatSQL-Build/CHANGELOG.md | 23 +++++------------------ GreatSQL-Build/Dockerfile | 2 +- GreatSQL-Build/README.md | 23 ++++++++++++++++++----- GreatSQL-Build/greatsql-automake.sh | 5 ----- GreatSQL-Build/greatsql-setenv.sh | 10 +++++----- 5 files changed, 29 insertions(+), 34 deletions(-) diff --git a/GreatSQL-Build/CHANGELOG.md b/GreatSQL-Build/CHANGELOG.md index 8cbfdd1..f2ec861 100644 --- a/GreatSQL-Build/CHANGELOG.md +++ b/GreatSQL-Build/CHANGELOG.md @@ -1,20 +1,7 @@ -# 8.0.32-25 更新日志 +# 8.0.32-26 更新日志 -## 2024.6.2 -* 修复lscpu指令在部分OS下执行结果正则表达 +## 2024.7.30 +* 更新到GreatSQL 8.0.32-26 +* 去掉龙芯判断处理逻辑 -## 2024.2.22 -* 继续简化Dockerfile,使其构建更快。 -* 把大部分实际工作放在自定义脚本里运行。 -* 构建Docker镜像时只做基础工作。 -* rpcgen安装改在 docker-entrypoint.sh 中,并判断x86/arm,不再在Dockerfile中处理 - -## 2024.2.20 -* 版本更新到GreatSQL 8.0.32-25。 -* 支持x86_64/aarch64。 -* 支持从服务器上下载boost和rpcgen包。 -* 支持从服务器上下载GreatSQL包。 -* 支持全自动化编译GreatSQL源码。 -* 编译完成后,清理不必要的文件目录。 - -[8.0.32-25]: https://gitee.com/GreatSQL/GreatSQL-Docker/tree/greatsql-8.0.32-25/GreatSQL-Build +[8.0.32-26]: https://gitee.com/GreatSQL/GreatSQL-Docker/tree/greatsql-8.0.32-26/GreatSQL-Build diff --git a/GreatSQL-Build/Dockerfile b/GreatSQL-Build/Dockerfile index e972000..5869f11 100644 --- a/GreatSQL-Build/Dockerfile +++ b/GreatSQL-Build/Dockerfile @@ -9,7 +9,7 @@ gitee="https://gitee.com/GreatSQL/GreatSQL-Docker" ARG OPT_DIR=/opt \ MYSQL_UID=3306 \ MYSQL_USER=mysql \ -GREATSQL_BUILD_DOWNLOAD_URL="https://gitee.com/GreatSQL/GreatSQL-Docker/raw/greatsql-8.0.32-25/GreatSQL-Build" \ +GREATSQL_BUILD_DOWNLOAD_URL="https://gitee.com/GreatSQL/GreatSQL-Docker/raw/greatsql-8.0.32-26/GreatSQL-Build" \ GREATSQL_ENV="greatsql-setenv.sh" \ ENTRYPOINT="docker-entrypoint.sh" \ DEPS="autoconf automake binutils bison cmake cyrus-sasl-devel cyrus-sasl-scram gcc-c++ \ diff --git a/GreatSQL-Build/README.md b/GreatSQL-Build/README.md index de3fa1d..21174bc 100644 --- a/GreatSQL-Build/README.md +++ b/GreatSQL-Build/README.md @@ -1,11 +1,24 @@ # GreatSQL-Build Docker --- +## 简介 + 全自动编译GreatSQL源码,生成二进制包。 适用于CentOS 8 x86_64/aarch64 环境,更多环境适配请自行修改Dockerfile及相关脚本中的参数。 -## 1. GreatSQL Build Docker镜像构建 +## 基本信息 +- 维护者: GreatSQL(greatsql@greatdb.com) +- 联系我们:greatsql@greatdb.com +- 最新版本:GreatSQL 8.0.32-26 +- 最后更新时间:2024-08-05 +- 支持CPU架构:x86_64、aarch64 + +## 支持哪些tag + +- [latest](https://hub.docker.com/layers/greatsql/greatsql/latest/images/sha256-6a01d0b1b9107b286601249202803da5b08e9f729b8727f691ce423928994eef?context=repo), [8.0.32-26](), [8.0.32-25](https://hub.docker.com/layers/greatsql/greatsql/8.0.32-25/images/sha256-6a01d0b1b9107b286601249202803da5b08e9f729b8727f691ce423928994eef?context=repo) + +## GreatSQL Build Docker镜像构建 ```shell $ docker build -t greatsql/greatsql_build . @@ -14,7 +27,7 @@ $ docker build -t greatsql/greatsql_build . 在构建镜像时,会自动从服务器上下载相应的源码包文件、初始化脚本等文件,并全自动化方式完成镜像构建工作。 -## 2. GreatSQL Build Docker镜像使用 +## GreatSQL Build Docker镜像使用 ```shell # 创建新容器 @@ -37,15 +50,15 @@ $ docker logs greatsql_build 3.3 make dynamic link for GreatSQL 4. greatsql build completed! -drwxrwxr-x 13 mysql mysql 293 Feb 22 01:33 GreatSQL-8.0.32-25-centos-glibc2.28-x86_64 -/opt/GreatSQL-8.0.32-25-centos-glibc2.28-x86_64/bin/mysqld Ver 8.0.32-25 for Linux on x86_64 (GreatSQL, Release 25, Revision 79f57097e3f) +drwxrwxr-x 13 mysql mysql 293 Feb 22 01:33 GreatSQL-8.0.32-26-centos-glibc2.28-x86_64 +/opt/GreatSQL-8.0.32-26-centos-glibc2.28-x86_64/bin/mysqld Ver 8.0.32-26 for Linux on x86_64 (GreatSQL, Release 26, Revision a68b3034c3d) 5. remove files and clean up ``` 可以看到已经完成编译,如果需要的话,可以将Docker容器中的二进制包文件拷贝到宿主机上,例如: ```shell -$ docker cp greatsql_build:/opt/GreatSQL-8.0.32-25-centos-glibc2.28-x86_64 /usr/local/ +$ docker cp greatsql_build:/opt/GreatSQL-8.0.32-26-centos-glibc2.28-x86_64 /usr/local/ ``` 如果宿主机环境也是CentOS 8 x86_64的话,这就可以在宿主机环境下直接使用该二进制文件包了。 diff --git a/GreatSQL-Build/greatsql-automake.sh b/GreatSQL-Build/greatsql-automake.sh index 3aa65d9..5a68064 100755 --- a/GreatSQL-Build/greatsql-automake.sh +++ b/GreatSQL-Build/greatsql-automake.sh @@ -4,11 +4,6 @@ echo " 3.1 compiling GreatSQL" -if [ ${ARCH} = "loongarch64" ] ; then - cd ${OPT_DIR}/${GREATSQL_SRC} - sed -i 's/\(.*defined.*mips.*\) \\/\1 defined(__loongarch__) || \\/ig' extra/icu/source/i18n/double-conversion-utils.h -fi - LIBLIST="libcrypto.so libssl.so libreadline.so libtinfo.so libsasl2.so libbrotlidec.so libbrotlicommon.so libgssapi_krb5.so libkrb5.so libkrb5support.so libk5crypto.so librtmp.so libgssapi.so libssl3.so libsmime3.so libnss3.so libnssutil3.so libplc4.so libnspr4.so libssl3.so libplds4.so libncurses.so libjemalloc.so" DIRLIST="bin lib lib/private lib/plugin lib/mysqlrouter/plugin lib/mysqlrouter/private" diff --git a/GreatSQL-Build/greatsql-setenv.sh b/GreatSQL-Build/greatsql-setenv.sh index b4b5c1b..5bd3168 100755 --- a/GreatSQL-Build/greatsql-setenv.sh +++ b/GreatSQL-Build/greatsql-setenv.sh @@ -12,8 +12,8 @@ fi MAJOR_VERSION=8 MINOR_VERSION=0 PATCH_VERSION=32 -RELEASE=25 -REVISION=79f57097e3f +RELEASE=26 +REVISION=a68b3034c3d OPT_DIR=/opt GLIBC=`ldd --version | head -n 1 | awk '{print $NF}'` ARCH=`uname -p` @@ -23,9 +23,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-25/deppkgs" -GREATSQL_MAKESH_DOWNLOAD_URL="https://gitee.com/GreatSQL/GreatSQL-Docker/raw/greatsql-8.0.32-25/GreatSQL-Build" -GREATSQL_SRC_DOWNLOAD_URL="https://product.greatdb.com/GreatSQL-8.0.32-25" +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" 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 4c3bd425613141de94abd1afe1bd3862da9854ec Mon Sep 17 00:00:00 2001 From: Ye Jinrong Date: Mon, 5 Aug 2024 15:13:30 +0800 Subject: [PATCH 03/71] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=88=B0GreatSQL=208.0?= =?UTF-8?q?.32-26?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index fb65253..d25ebe5 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-25 -- 最后更新时间:2024-02-20 +- 最新版本:GreatSQL 8.0.32-26 +- 最后更新时间:2024-08-05。 ## 镜像仓库列表 - GreatSQL,构建GreatSQL运行环境的Docker镜像 From 08f2568d173676caab94eb6df5ce2c904a62c5d4 Mon Sep 17 00:00:00 2001 From: Ye Jinrong Date: Mon, 5 Aug 2024 17:44:11 +0800 Subject: [PATCH 04/71] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E9=98=BF=E9=87=8C?= =?UTF-8?q?=E4=BA=91ACR=E9=95=9C=E5=83=8F=E9=93=BE=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GreatSQL/docker-compose/mgr-3nodes-multi-primary.yml | 1 + GreatSQL/docker-compose/mgr-3nodes.yml | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/GreatSQL/docker-compose/mgr-3nodes-multi-primary.yml b/GreatSQL/docker-compose/mgr-3nodes-multi-primary.yml index f04222d..3093f24 100644 --- a/GreatSQL/docker-compose/mgr-3nodes-multi-primary.yml +++ b/GreatSQL/docker-compose/mgr-3nodes-multi-primary.yml @@ -3,6 +3,7 @@ version: '2' services: mgr2: image: greatsql/greatsql + #image: registry.cn-beijing.aliyuncs.com/greatsql/greatsql #指定镜像(阿里云ACR) container_name: mgr2 #设定容器名字 hostname: mgr2 #设定容器中的主机名 networks: #指定容器使用哪个专用网络 diff --git a/GreatSQL/docker-compose/mgr-3nodes.yml b/GreatSQL/docker-compose/mgr-3nodes.yml index bed8678..df2ac56 100644 --- a/GreatSQL/docker-compose/mgr-3nodes.yml +++ b/GreatSQL/docker-compose/mgr-3nodes.yml @@ -3,6 +3,7 @@ version: '2' services: mgr2: image: greatsql/greatsql #指定镜像 + #image: registry.cn-beijing.aliyuncs.com/greatsql/greatsql #指定镜像(阿里云ACR) container_name: mgr2 #设定容器名字 hostname: mgr2 #设定容器中的主机名 networks: #指定容器使用哪个专用网络 @@ -21,7 +22,7 @@ services: MYSQL_MGR_ARBITRATOR: 0 #指定当前MGR节点为Arbitrator角色,此时不能同时指定其为Primary/Secondary角色 LOWER_CASE_TABLE_NAMES: 0 #设定lower_case_table_names值,默认为0 mgr3: - image: greatsql/greatsql + image: greatsql/greatsql #指定镜像 container_name: mgr3 hostname: mgr3 networks: From d3645b64c71579926a4013fe7d83bfe7b0b0d058 Mon Sep 17 00:00:00 2001 From: Ye Jinrong Date: Tue, 6 Aug 2024 19:27:15 +0800 Subject: [PATCH 05/71] =?UTF-8?q?=E6=9B=B4=E6=96=B0=EF=BC=9A=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E6=9C=80=E6=96=B0=E7=89=88=E6=9C=ACtag=E9=93=BE?= =?UTF-8?q?=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GreatSQL-Build/README.md | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/GreatSQL-Build/README.md b/GreatSQL-Build/README.md index 21174bc..d71757a 100644 --- a/GreatSQL-Build/README.md +++ b/GreatSQL-Build/README.md @@ -11,12 +11,24 @@ - 维护者: GreatSQL(greatsql@greatdb.com) - 联系我们:greatsql@greatdb.com - 最新版本:GreatSQL 8.0.32-26 -- 最后更新时间:2024-08-05 +- 最后更新时间:2024-08-06 - 支持CPU架构:x86_64、aarch64 ## 支持哪些tag -- [latest](https://hub.docker.com/layers/greatsql/greatsql/latest/images/sha256-6a01d0b1b9107b286601249202803da5b08e9f729b8727f691ce423928994eef?context=repo), [8.0.32-26](), [8.0.32-25](https://hub.docker.com/layers/greatsql/greatsql/8.0.32-25/images/sha256-6a01d0b1b9107b286601249202803da5b08e9f729b8727f691ce423928994eef?context=repo) +- [latest](https://hub.docker.com/layers/greatsql/greatsql_build/latest/images/sha256-a8bea01ea86b77866f8e4739859537b6f4b5060178ae06552e6fad4607c4e0cf) +- [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拉取,例如: + +```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 +``` + +> 如果提示 timeout 连接超时错误,多重试几次应该就好了。 ## GreatSQL Build Docker镜像构建 From 268452fe90fa7f42c58b42eb4e106c4153426d72 Mon Sep 17 00:00:00 2001 From: Ye Jinrong Date: Tue, 6 Aug 2024 19:27:18 +0800 Subject: [PATCH 06/71] =?UTF-8?q?=E6=9B=B4=E6=96=B0=EF=BC=9A=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E6=9C=80=E6=96=B0=E7=89=88=E6=9C=ACtag=E9=93=BE?= =?UTF-8?q?=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GreatSQL/README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/GreatSQL/README.md b/GreatSQL/README.md index a5aef4d..1ebc2d0 100644 --- a/GreatSQL/README.md +++ b/GreatSQL/README.md @@ -11,12 +11,12 @@ - 维护者: GreatSQL(greatsql@greatdb.com) - 联系我们:greatsql@greatdb.com - 最新版本:GreatSQL 8.0.32-26 -- 最后更新时间:2024-08-05 +- 最后更新时间:2024-08-06 ## 支持哪些tag -- [latest](https://hub.docker.com/layers/greatsql/greatsql/latest/images/sha256-08b3addca1dd3f87e54b476822d67ecefc0128f7f294d8969f6fff5b47d1938c) -- [8.0.32-26](https://hub.docker.com/layers/greatsql/greatsql/8.0.32-26/images/sha256-08b3addca1dd3f87e54b476822d67ecefc0128f7f294d8969f6fff5b47d1938c) +- [latest](https://hub.docker.com/layers/greatsql/greatsql/latest/images/sha256-e115504a6241a7039a8781f799b4a1e41e262fa67029ad1e29e2f05caa38be2c) +- [8.0.32-26](https://hub.docker.com/layers/greatsql/greatsql/8.0.32-26/images/sha256-e115504a6241a7039a8781f799b4a1e41e262fa67029ad1e29e2f05caa38be2c) - [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) From ec30349c50c333e3805018949b0b500494fca262 Mon Sep 17 00:00:00 2001 From: Ye Jinrong Date: Tue, 6 Aug 2024 19:27:35 +0800 Subject: [PATCH 07/71] LU --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d25ebe5..fb85c60 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-26 -- 最后更新时间:2024-08-05。 +- 最后更新时间:2024-08-06。 ## 镜像仓库列表 - GreatSQL,构建GreatSQL运行环境的Docker镜像 From 172b12cc1fe20aeb12be176c64516a06061a4ee2 Mon Sep 17 00:00:00 2001 From: Ye Jinrong Date: Wed, 7 Aug 2024 17:19:30 +0800 Subject: [PATCH 08/71] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=88=9D=E5=A7=8B?= =?UTF-8?q?=E5=8C=96=E4=B8=8D=E5=BD=93=E5=AF=BC=E8=87=B4=E6=9F=90=E4=BA=9B?= =?UTF-8?q?=E8=BF=9E=E6=8E=A5=E6=97=A0=E6=B3=95=E8=8E=B7=E5=8F=96=E8=B4=A6?= =?UTF-8?q?=E6=88=B7=E5=90=8D=E7=9A=84=E9=97=AE=E9=A2=98,=20issue:=20https?= =?UTF-8?q?://greatsql.cn/thread-840-1-1.html?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GreatSQL/greatsql-init.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/GreatSQL/greatsql-init.sh b/GreatSQL/greatsql-init.sh index 0a84e20..e16787a 100755 --- a/GreatSQL/greatsql-init.sh +++ b/GreatSQL/greatsql-init.sh @@ -264,7 +264,6 @@ if [ "$1" = 'mysqld' -a -z "$wantHelp" ]; then "${mysql[@]}" <<-EOSQL SET @@SESSION.SQL_LOG_BIN=0; - DELETE FROM mysql.user WHERE user NOT IN ('mysql.sys', 'mysqlxsys', 'mysql.infoschema', 'mysql.session', 'root') OR host NOT IN ('localhost') ; ALTER USER 'root'@'localhost' IDENTIFIED BY '${MYSQL_ROOT_PASSWORD}' ; GRANT ALL ON *.* TO 'root'@'localhost' WITH GRANT OPTION ; ${rootCreate} From 7c7c85ad8dccab2c98245263ceaa8b250c409385 Mon Sep 17 00:00:00 2001 From: Ye Jinrong Date: Wed, 7 Aug 2024 17:20:14 +0800 Subject: [PATCH 09/71] LU --- GreatSQL/CHANGELOG.md | 3 +++ GreatSQL/README.md | 2 +- README.md | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/GreatSQL/CHANGELOG.md b/GreatSQL/CHANGELOG.md index 9f811dc..5a15bb0 100644 --- a/GreatSQL/CHANGELOG.md +++ b/GreatSQL/CHANGELOG.md @@ -1,5 +1,8 @@ # 8.0.32-26 更新日志 +## 2024.8.7 +* 修复初始化不当导致某些连接无法获取账户名的问题, issue: https://greatsql.cn/thread-840-1-1.html + ## 2024.8.5 * 默认关闭NUMA diff --git a/GreatSQL/README.md b/GreatSQL/README.md index 1ebc2d0..5e71648 100644 --- a/GreatSQL/README.md +++ b/GreatSQL/README.md @@ -11,7 +11,7 @@ - 维护者: GreatSQL(greatsql@greatdb.com) - 联系我们:greatsql@greatdb.com - 最新版本:GreatSQL 8.0.32-26 -- 最后更新时间:2024-08-06 +- 最后更新时间:2024-08-07 ## 支持哪些tag diff --git a/README.md b/README.md index fb85c60..40269c3 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-26 -- 最后更新时间:2024-08-06。 +- 最后更新时间:2024-08-07。 ## 镜像仓库列表 - GreatSQL,构建GreatSQL运行环境的Docker镜像 From f348549d348e335da9525d222eb7cd76cb0deaf4 Mon Sep 17 00:00:00 2001 From: Ye Jinrong Date: Wed, 7 Aug 2024 19:39:46 +0800 Subject: [PATCH 10/71] =?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/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/GreatSQL/README.md b/GreatSQL/README.md index 5e71648..7260098 100644 --- a/GreatSQL/README.md +++ b/GreatSQL/README.md @@ -15,8 +15,8 @@ ## 支持哪些tag -- [latest](https://hub.docker.com/layers/greatsql/greatsql/latest/images/sha256-e115504a6241a7039a8781f799b4a1e41e262fa67029ad1e29e2f05caa38be2c) -- [8.0.32-26](https://hub.docker.com/layers/greatsql/greatsql/8.0.32-26/images/sha256-e115504a6241a7039a8781f799b4a1e41e262fa67029ad1e29e2f05caa38be2c) +- [latest](https://hub.docker.com/layers/greatsql/greatsql/latest/images/sha256-0c2f0117aa16d6330bf4f597bdf456491c517375a10badc6d9bc8d8e08d1fa2b) +- [8.0.32-26](https://hub.docker.com/layers/greatsql/greatsql/8.0.32-26/images/sha256-0c2f0117aa16d6330bf4f597bdf456491c517375a10badc6d9bc8d8e08d1fa2b) - [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) From 5cda186057197774c23b7f1ddf2e0aad8ef8a33b Mon Sep 17 00:00:00 2001 From: Ye Jinrong Date: Thu, 8 Aug 2024 14:17:04 +0800 Subject: [PATCH 11/71] =?UTF-8?q?=E5=B0=86=E5=9F=BA=E7=A1=80=E9=95=9C?= =?UTF-8?q?=E5=83=8F=E4=BF=AE=E6=94=B9=E4=B8=BAOracle=20Linux=208-sim?= =?UTF-8?q?=EF=BC=8C=E7=BC=A9=E5=87=8F=E9=95=9C=E5=83=8F=E5=B0=BA=E5=AF=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GreatSQL/CHANGELOG.md | 4 ++++ GreatSQL/Dockerfile | 45 +++++++++++++++---------------------------- GreatSQL/my.cnf | 2 +- 3 files changed, 20 insertions(+), 31 deletions(-) diff --git a/GreatSQL/CHANGELOG.md b/GreatSQL/CHANGELOG.md index 5a15bb0..e4438d2 100644 --- a/GreatSQL/CHANGELOG.md +++ b/GreatSQL/CHANGELOG.md @@ -1,5 +1,9 @@ # 8.0.32-26 更新日志 +## 2024.8.8 +* 将基础镜像修改为Oracle Linux 8-sim,缩减镜像尺寸 +* 客户端prompt微调,增加空格 + ## 2024.8.7 * 修复初始化不当导致某些连接无法获取账户名的问题, issue: https://greatsql.cn/thread-840-1-1.html diff --git a/GreatSQL/Dockerfile b/GreatSQL/Dockerfile index a6c9891..3b218be 100644 --- a/GreatSQL/Dockerfile +++ b/GreatSQL/Dockerfile @@ -1,5 +1,5 @@ -FROM centos -#FROM registry.cn-beijing.aliyuncs.com/greatsql/centos +#FROM oraclelinux:8-slim +FROM registry.cn-beijing.aliyuncs.com/greatsql/oraclelinux:8-slim LABEL maintainer="greatsql.cn" \ email="greatsql@greatdb.com" \ @@ -7,16 +7,14 @@ forum="https://greatsql.cn/forum.php" \ gitee="https://gitee.com/GreatSQL/GreatSQL-Docker" ENV LANG en_US.utf8 -ARG TARGETARCH \ +ARG TARGETARCH=amd64 \ MYSQL_DATA_DIR=/data/GreatSQL \ MYSQL_USER=mysql \ MYSQL_UID_GID=3306 \ MYSQL_EXTRACT_DIR=/usr/local \ TMP_DIR=/tmp \ MYSQL_PORT=3306 \ -DEPS="pkg-config perl libaio-devel numactl-devel numactl-libs \ -net-tools openssl openssl-devel perl-Data-Dumper perl-Digest-MD5 \ -python2 perl-JSON perl-Test-Simple" \ +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_INIT="greatsql-init.sh" \ GREATSQL_SHRINK="greatsql-shrink.sh" \ @@ -28,39 +26,26 @@ ENV GREATSQL_PKG="greatsql-8.0.32-26.1.el8.${TARGETARCH}.rpm-bundle.tar.xz" CMD /bin/bash -RUN (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/*;\ -rm -f /lib/systemd/system/local-fs.target.wants/*; \ -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-* ; \ -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 && \ -rm -f /etc/yum.repos.d/CentOS-Linux-* ; \ -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 && \ +RUN microdnf install -y ${DEPS} > /dev/null 2>&1 && \ +microdnf update -y > /dev/null 2>&1 && \ +microdnf clean all > /dev/null 2>&1 && \ curl -o ${TMP_DIR}/${GREATSQL_SHRINK} ${GREATSQL_DOCKER_DOWNLOAD_URL}/${GREATSQL_SHRINK} > /dev/null 2>&1 && \ curl -o ${TMP_DIR}/${GREATSQL_TEST} ${GREATSQL_DOCKER_DOWNLOAD_URL}/${GREATSQL_TEST} > /dev/null 2>&1 && \ curl -o /${GREATSQL_INIT} ${GREATSQL_DOCKER_DOWNLOAD_URL}/${GREATSQL_INIT} > /dev/null 2>&1 && \ curl -o /etc/${GREATSQL_CNF} ${GREATSQL_DOCKER_DOWNLOAD_URL}/${GREATSQL_CNF} > /dev/null 2>&1 && \ -/usr/sbin/groupadd -g ${MYSQL_UID_GID} ${MYSQL_USER} && \ -/usr/sbin/useradd -u ${MYSQL_UID_GID} -r -g ${MYSQL_UID_GID} -s /sbin/nologin ${MYSQL_USER} && \ +/usr/sbin/groupadd -g ${MYSQL_UID_GID} ${MYSQL_USER} > /dev/null 2>&1 && \ +/usr/sbin/useradd -u ${MYSQL_UID_GID} -r -g ${MYSQL_UID_GID} -s /sbin/nologin ${MYSQL_USER} > /dev/null 2>&1 && \ curl -o ${TMP_DIR}/greatsql.tar.xz ${GREATSQL_DOWNLOAD_URL}/${GREATSQL_PKG} > /dev/null 2>&1 && \ tar xf ${TMP_DIR}/greatsql.tar.xz -C ${TMP_DIR} > /dev/null 2>&1 && \ -dnf install -y ${TMP_DIR}/greatsql*rpm > /dev/null 2>&1 && \ +cd ${TMP_DIR} && \ +rpm -ivh --nodeps greatsql-client*rpm greatsql-shared*rpm greatsql-server*rpm greatsql-icu-data-files*rpm > /dev/null 2>&1 && \ /bin/bash ${TMP_DIR}/${GREATSQL_SHRINK} > /dev/null 2>&1 && \ -mkdir -p ${MYSQL_DATA_DIR} > /dev/null 2>&1 && \ +mkdir -p ${MYSQL_DATA_DIR} && \ chown -R ${MYSQL_USER}:${MYSQL_USER} ${MYSQL_DATA_DIR} && \ -chmod -R ug+rwX /etc/my.cnf > /dev/null 2>&1 && \ +chmod -R ug+rwX /etc/my.cnf && \ chmod +x /${GREATSQL_INIT} && \ -rm -f ${TMP_DIR}/greatsql*xz ${TMP_DIR}/greatsql*rpm +rm -f ${TMP_DIR}/greatsql*xz ${TMP_DIR}/greatsql*rpm ; \ +rm -fr /usr/share/doc /usr/share/man /usr/share/misc ENTRYPOINT ["/greatsql-init.sh"] diff --git a/GreatSQL/my.cnf b/GreatSQL/my.cnf index 0f6001f..5080591 100644 --- a/GreatSQL/my.cnf +++ b/GreatSQL/my.cnf @@ -8,7 +8,7 @@ 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] From f5ccf8f61d423558115574e8e8b340a612916df3 Mon Sep 17 00:00:00 2001 From: Ye Jinrong Date: Thu, 8 Aug 2024 14:20:14 +0800 Subject: [PATCH 12/71] =?UTF-8?q?GreatSQL=20Docker=E5=A2=9E=E5=8A=A0oracle?= =?UTF-8?q?linux=E6=A0=87=E7=AD=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GreatSQL/README.md | 3 +++ README.md | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/GreatSQL/README.md b/GreatSQL/README.md index 7260098..722f2ec 100644 --- a/GreatSQL/README.md +++ b/GreatSQL/README.md @@ -17,6 +17,7 @@ - [latest](https://hub.docker.com/layers/greatsql/greatsql/latest/images/sha256-0c2f0117aa16d6330bf4f597bdf456491c517375a10badc6d9bc8d8e08d1fa2b) - [8.0.32-26](https://hub.docker.com/layers/greatsql/greatsql/8.0.32-26/images/sha256-0c2f0117aa16d6330bf4f597bdf456491c517375a10badc6d9bc8d8e08d1fa2b) +- [oraclelinux](https://hub.docker.com/layers/greatsql/greatsql/oraclelinux/images/sha256-f5b0c6420e6e9e82db460114f081c7a6a05b503e375ac9e75c25204868192673) - [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) @@ -29,6 +30,8 @@ $ 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:oraclelinux ``` > 如果提示 timeout 连接超时错误,多重试几次应该就好了。 diff --git a/README.md b/README.md index 40269c3..e65c4e3 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-26 -- 最后更新时间:2024-08-07。 +- 最后更新时间:2024-08-08。 ## 镜像仓库列表 - GreatSQL,构建GreatSQL运行环境的Docker镜像 From 135225cfe6ac51c2632ee437f0b4c38d8bb12ca4 Mon Sep 17 00:00:00 2001 From: Ye Jinrong Date: Thu, 8 Aug 2024 16:33:52 +0800 Subject: [PATCH 13/71] =?UTF-8?q?=E4=B8=8D=E5=86=8D=E5=B1=8F=E8=94=BD?= =?UTF-8?q?=E6=9E=84=E5=BB=BA=E8=BF=87=E7=A8=8B=E4=B8=AD=E7=9A=84=E5=B1=8F?= =?UTF-8?q?=E5=B9=95=E8=BE=93=E5=87=BA=E5=86=85=E5=AE=B9=EF=BC=8C=E6=96=B9?= =?UTF-8?q?=E4=BE=BF=E6=95=85=E9=9A=9C=E6=8E=92=E6=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GreatSQL/Dockerfile | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/GreatSQL/Dockerfile b/GreatSQL/Dockerfile index 3b218be..10c6351 100644 --- a/GreatSQL/Dockerfile +++ b/GreatSQL/Dockerfile @@ -26,20 +26,20 @@ ENV GREATSQL_PKG="greatsql-8.0.32-26.1.el8.${TARGETARCH}.rpm-bundle.tar.xz" CMD /bin/bash -RUN microdnf install -y ${DEPS} > /dev/null 2>&1 && \ -microdnf update -y > /dev/null 2>&1 && \ -microdnf clean all > /dev/null 2>&1 && \ -curl -o ${TMP_DIR}/${GREATSQL_SHRINK} ${GREATSQL_DOCKER_DOWNLOAD_URL}/${GREATSQL_SHRINK} > /dev/null 2>&1 && \ -curl -o ${TMP_DIR}/${GREATSQL_TEST} ${GREATSQL_DOCKER_DOWNLOAD_URL}/${GREATSQL_TEST} > /dev/null 2>&1 && \ -curl -o /${GREATSQL_INIT} ${GREATSQL_DOCKER_DOWNLOAD_URL}/${GREATSQL_INIT} > /dev/null 2>&1 && \ -curl -o /etc/${GREATSQL_CNF} ${GREATSQL_DOCKER_DOWNLOAD_URL}/${GREATSQL_CNF} > /dev/null 2>&1 && \ -/usr/sbin/groupadd -g ${MYSQL_UID_GID} ${MYSQL_USER} > /dev/null 2>&1 && \ -/usr/sbin/useradd -u ${MYSQL_UID_GID} -r -g ${MYSQL_UID_GID} -s /sbin/nologin ${MYSQL_USER} > /dev/null 2>&1 && \ -curl -o ${TMP_DIR}/greatsql.tar.xz ${GREATSQL_DOWNLOAD_URL}/${GREATSQL_PKG} > /dev/null 2>&1 && \ -tar xf ${TMP_DIR}/greatsql.tar.xz -C ${TMP_DIR} > /dev/null 2>&1 && \ +RUN microdnf install -y ${DEPS} && \ +microdnf update -y && \ +microdnf clean all && \ +curl -o ${TMP_DIR}/${GREATSQL_SHRINK} ${GREATSQL_DOCKER_DOWNLOAD_URL}/${GREATSQL_SHRINK} && \ +curl -o ${TMP_DIR}/${GREATSQL_TEST} ${GREATSQL_DOCKER_DOWNLOAD_URL}/${GREATSQL_TEST} && \ +curl -o /${GREATSQL_INIT} ${GREATSQL_DOCKER_DOWNLOAD_URL}/${GREATSQL_INIT} && \ +curl -o /etc/${GREATSQL_CNF} ${GREATSQL_DOCKER_DOWNLOAD_URL}/${GREATSQL_CNF} && \ +/usr/sbin/groupadd -g ${MYSQL_UID_GID} ${MYSQL_USER} && \ +/usr/sbin/useradd -u ${MYSQL_UID_GID} -r -g ${MYSQL_UID_GID} -s /sbin/nologin ${MYSQL_USER} && \ +curl -o ${TMP_DIR}/greatsql.tar.xz ${GREATSQL_DOWNLOAD_URL}/${GREATSQL_PKG} && \ +tar xf ${TMP_DIR}/greatsql.tar.xz -C ${TMP_DIR} && \ cd ${TMP_DIR} && \ -rpm -ivh --nodeps greatsql-client*rpm greatsql-shared*rpm greatsql-server*rpm greatsql-icu-data-files*rpm > /dev/null 2>&1 && \ -/bin/bash ${TMP_DIR}/${GREATSQL_SHRINK} > /dev/null 2>&1 && \ +rpm -ivh --nodeps greatsql-client*rpm greatsql-shared*rpm greatsql-server*rpm greatsql-icu-data-files*rpm && \ +/bin/bash ${TMP_DIR}/${GREATSQL_SHRINK} && \ mkdir -p ${MYSQL_DATA_DIR} && \ chown -R ${MYSQL_USER}:${MYSQL_USER} ${MYSQL_DATA_DIR} && \ chmod -R ug+rwX /etc/my.cnf && \ From 368c1ecb53965b814111fead8d9b8da695a87abb Mon Sep 17 00:00:00 2001 From: Ye Jinrong Date: Thu, 8 Aug 2024 16:47:16 +0800 Subject: [PATCH 14/71] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E6=98=AF=E5=90=A6=E5=AD=98=E5=9C=A8=E7=9A=84=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GreatSQL-Build/greatsql-setenv.sh | 4 +++- GreatSQL-Shell-Build/greatsqlsh-setenv.sh | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/GreatSQL-Build/greatsql-setenv.sh b/GreatSQL-Build/greatsql-setenv.sh index 5bd3168..2b40bca 100755 --- a/GreatSQL-Build/greatsql-setenv.sh +++ b/GreatSQL-Build/greatsql-setenv.sh @@ -1,6 +1,8 @@ #/bin/bash -. ~/.bash_profile +if [ -f ~/.bash_profile ] ; then + . ~/.bash_profile +fi MAKE_JOBS=`lscpu | grep '^CPU(s):'|awk '{print $NF}'` if [ ${MAKE_JOBS} -ge 16 ] ; then diff --git a/GreatSQL-Shell-Build/greatsqlsh-setenv.sh b/GreatSQL-Shell-Build/greatsqlsh-setenv.sh index 7b0e024..d40dd72 100755 --- a/GreatSQL-Shell-Build/greatsqlsh-setenv.sh +++ b/GreatSQL-Shell-Build/greatsqlsh-setenv.sh @@ -1,6 +1,8 @@ #/bin/bash -. ~/.bash_profile +if [ -f ~/.bash_profile ] ; then + . ~/.bash_profile +fi MAKE_JOBS=`lscpu | grep '^CPU(s)'|awk '{print $NF}'` if [ ${MAKE_JOBS} -ge 16 ] ; then From 55e6d6dc397180b7cc53fde6711b6be7d454a351 Mon Sep 17 00:00:00 2001 From: Ye Jinrong Date: Thu, 8 Aug 2024 20:47:43 +0800 Subject: [PATCH 15/71] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=85=BE=E8=AE=AF?= =?UTF-8?q?=E4=BA=91TCR=E5=AE=B9=E5=99=A8=E8=B5=84=E6=BA=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GreatSQL/CHANGELOG.md | 1 + GreatSQL/Dockerfile | 3 ++- GreatSQL/README.md | 16 +++++++++++----- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/GreatSQL/CHANGELOG.md b/GreatSQL/CHANGELOG.md index e4438d2..a56302d 100644 --- a/GreatSQL/CHANGELOG.md +++ b/GreatSQL/CHANGELOG.md @@ -2,6 +2,7 @@ ## 2024.8.8 * 将基础镜像修改为Oracle Linux 8-sim,缩减镜像尺寸 +* 增加腾讯云TCR容器资源 * 客户端prompt微调,增加空格 ## 2024.8.7 diff --git a/GreatSQL/Dockerfile b/GreatSQL/Dockerfile index 10c6351..493e5df 100644 --- a/GreatSQL/Dockerfile +++ b/GreatSQL/Dockerfile @@ -1,4 +1,5 @@ #FROM oraclelinux:8-slim +#FROM ccr.ccs.tencentyun.com/greatsql/oraclelinux:8-slim FROM registry.cn-beijing.aliyuncs.com/greatsql/oraclelinux:8-slim LABEL maintainer="greatsql.cn" \ @@ -7,7 +8,7 @@ forum="https://greatsql.cn/forum.php" \ gitee="https://gitee.com/GreatSQL/GreatSQL-Docker" ENV LANG en_US.utf8 -ARG TARGETARCH=amd64 \ +ARG TARGETARCH \ MYSQL_DATA_DIR=/data/GreatSQL \ MYSQL_USER=mysql \ MYSQL_UID_GID=3306 \ diff --git a/GreatSQL/README.md b/GreatSQL/README.md index 722f2ec..d6bb345 100644 --- a/GreatSQL/README.md +++ b/GreatSQL/README.md @@ -11,13 +11,12 @@ - 维护者: GreatSQL(greatsql@greatdb.com) - 联系我们:greatsql@greatdb.com - 最新版本:GreatSQL 8.0.32-26 -- 最后更新时间:2024-08-07 +- 最后更新时间:2024-08-08 ## 支持哪些tag -- [latest](https://hub.docker.com/layers/greatsql/greatsql/latest/images/sha256-0c2f0117aa16d6330bf4f597bdf456491c517375a10badc6d9bc8d8e08d1fa2b) -- [8.0.32-26](https://hub.docker.com/layers/greatsql/greatsql/8.0.32-26/images/sha256-0c2f0117aa16d6330bf4f597bdf456491c517375a10badc6d9bc8d8e08d1fa2b) -- [oraclelinux](https://hub.docker.com/layers/greatsql/greatsql/oraclelinux/images/sha256-f5b0c6420e6e9e82db460114f081c7a6a05b503e375ac9e75c25204868192673) +- [latest](https://hub.docker.com/layers/greatsql/greatsql/latest/images/sha256-126b1fd7a1305273b8fcbe7cf7d73fb525217c7fd42bd3da9debe6afe4aecedb) +- [8.0.32-26](https://hub.docker.com/layers/greatsql/greatsql/8.0.32-26/images/sha256-126b1fd7a1305273b8fcbe7cf7d73fb525217c7fd42bd3da9debe6afe4aecedb) - [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) @@ -30,10 +29,17 @@ $ docker pull registry.cn-beijing.aliyuncs.com/greatsql/greatsql $ docker pull registry.cn-beijing.aliyuncs.com/greatsql/greatsql:8.0.32-26 +``` + +还可以从腾讯云TCR拉取,例如: -$ docker pull registry.cn-beijing.aliyuncs.com/greatsql/greatsql:oraclelinux +```shell +$ docker pull ccr.ccs.tencentyun.com/greatsql/greatsql + +$ docker pull ccr.ccs.tencentyun.com/greatsql/greatsql:8.0.32-26 ``` + > 如果提示 timeout 连接超时错误,多重试几次应该就好了。 ## GreatSQL Docker镜像使用 From d9c7e1ae8681aacdea45940cc2ab5d403422a1f0 Mon Sep 17 00:00:00 2001 From: Ye Jinrong Date: Mon, 12 Aug 2024 11:11:53 +0800 Subject: [PATCH 16/71] =?UTF-8?q?=E4=BF=AE=E6=94=B9MAXPERF=E9=BB=98?= =?UTF-8?q?=E8=AE=A4=E5=80=BC=EF=BC=88=E4=B8=8D=E5=86=8D=E9=BB=98=E8=AE=A4?= =?UTF-8?q?=E4=B8=BA1=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GreatSQL/greatsql-init.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/GreatSQL/greatsql-init.sh b/GreatSQL/greatsql-init.sh index e16787a..aa60129 100755 --- a/GreatSQL/greatsql-init.sh +++ b/GreatSQL/greatsql-init.sh @@ -345,8 +345,9 @@ cpu=`lscpu |grep '^CPU(s)'|awk '{print $2}'` ibp_maxperf=`expr ${mem} / 4 \* 3` rapid_mem_maxperf=`expr ${ibp_maxperf} / 2` rapid_thd_maxperf=`expr ${cpu} - 2` + if [ -z "${MAXPERF}" ]; then - MAXPERF=1 + MAXPERF=${MAXPERF} fi if [ "${MAXPERF}" == "1" ]; then From 2d1444354344fe674051638246addefb4790f152 Mon Sep 17 00:00:00 2001 From: Ye Jinrong Date: Mon, 12 Aug 2024 14:24:11 +0800 Subject: [PATCH 17/71] =?UTF-8?q?=E8=A3=81=E5=89=AA=E6=9B=B4=E5=A4=9A?= =?UTF-8?q?=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GreatSQL/CHANGELOG.md | 4 ++++ GreatSQL/Dockerfile | 4 ++-- GreatSQL/README.md | 2 +- GreatSQL/greatsql-shrink.sh | 3 +++ 4 files changed, 10 insertions(+), 3 deletions(-) diff --git a/GreatSQL/CHANGELOG.md b/GreatSQL/CHANGELOG.md index a56302d..790a1fc 100644 --- a/GreatSQL/CHANGELOG.md +++ b/GreatSQL/CHANGELOG.md @@ -1,5 +1,9 @@ # 8.0.32-26 更新日志 +## 2024.8.12 +* 修改MAXPERF默认值(不再默认为1) +* 裁剪更多文件 + ## 2024.8.8 * 将基础镜像修改为Oracle Linux 8-sim,缩减镜像尺寸 * 增加腾讯云TCR容器资源 diff --git a/GreatSQL/Dockerfile b/GreatSQL/Dockerfile index 493e5df..6ff10aa 100644 --- a/GreatSQL/Dockerfile +++ b/GreatSQL/Dockerfile @@ -27,9 +27,8 @@ ENV GREATSQL_PKG="greatsql-8.0.32-26.1.el8.${TARGETARCH}.rpm-bundle.tar.xz" CMD /bin/bash -RUN microdnf install -y ${DEPS} && \ +RUN microdnf install --nodocs -y ${DEPS} && \ microdnf update -y && \ -microdnf clean all && \ curl -o ${TMP_DIR}/${GREATSQL_SHRINK} ${GREATSQL_DOCKER_DOWNLOAD_URL}/${GREATSQL_SHRINK} && \ curl -o ${TMP_DIR}/${GREATSQL_TEST} ${GREATSQL_DOCKER_DOWNLOAD_URL}/${GREATSQL_TEST} && \ curl -o /${GREATSQL_INIT} ${GREATSQL_DOCKER_DOWNLOAD_URL}/${GREATSQL_INIT} && \ @@ -45,6 +44,7 @@ mkdir -p ${MYSQL_DATA_DIR} && \ chown -R ${MYSQL_USER}:${MYSQL_USER} ${MYSQL_DATA_DIR} && \ chmod -R ug+rwX /etc/my.cnf && \ chmod +x /${GREATSQL_INIT} && \ +microdnf clean all && \ rm -f ${TMP_DIR}/greatsql*xz ${TMP_DIR}/greatsql*rpm ; \ rm -fr /usr/share/doc /usr/share/man /usr/share/misc diff --git a/GreatSQL/README.md b/GreatSQL/README.md index d6bb345..2ec213b 100644 --- a/GreatSQL/README.md +++ b/GreatSQL/README.md @@ -11,7 +11,7 @@ - 维护者: GreatSQL(greatsql@greatdb.com) - 联系我们:greatsql@greatdb.com - 最新版本:GreatSQL 8.0.32-26 -- 最后更新时间:2024-08-08 +- 最后更新时间:2024-08-12 ## 支持哪些tag diff --git a/GreatSQL/greatsql-shrink.sh b/GreatSQL/greatsql-shrink.sh index a24b12f..30181da 100755 --- a/GreatSQL/greatsql-shrink.sh +++ b/GreatSQL/greatsql-shrink.sh @@ -5,9 +5,12 @@ rm -f $basedir/usr/sbin/mysqld-debug cd $basedir/usr/bin rm -fr comp_err ibd2sdi innochecksum ldb lz4_decompress myisamchk myisam_ftdump myisamlog myisampack mysqlcheck mysql_client_test mysqld_multi mysqld_safe mysqldumpslow mysqlimport mysql_keyring_encryption_test mysql_ldb mysql_migrate_keyring mysql_secure_installation mysqlslap mysqltest mysqltest_safe_process mysql_upgrade mysqlxtest ps-admin ps_mysqld_helper sst_dump zlib_decompress mysqlpump mysql_config mysql_config_editor perror +rm -fr mysqldecrypt zstd_decompress mysqlshow mysqladmin mysqldump mysqlbinlog cd $basedir/usr/lib64/mysql rm -rf libHotBackup.so libmysqlservices.a libperconaserverclient.* libcoredumper.a libnspr4.so private/libnspr4.so libnss3.so private/libnss3.so libnssutil3.so private/libnssutil3.so libplc4.so private/libplc4.so libplds4.so private/libplds4.so libsmime3.so private/libsmime3.so libssl3.so private/libssl3.so mecab/ +rm -fr libmysqlclient.so.21 libmysqlclient.so.21.2.32 cd $basedir/usr/lib64/mysql/plugin rm -fr debug/ auth_pam_compat.so auth_pam.so component_keyring_file.so component_mysqlx_global_reset.so component_pfs_example_component_population.so component_pfs_example.so component_test_backup_lock_service.so component_test_mysql_current_thread_reader.so component_test_mysql_runtime_error.so component_test_pfs_notification.so component_test_pfs_resource_group.so component_test_status_var_service_int.so component_test_status_var_service_reg_only.so component_test_status_var_service.so component_test_status_var_service_str.so component_test_status_var_service_unreg_only.so component_test_string_service_charset.so component_test_string_service_long.so component_test_string_service.so component_test_system_variable_source.so component_test_sys_var_service_int.so component_test_sys_var_service_same.so component_test_sys_var_service.so component_test_sys_var_service_str.so component_test_udf_registration.so component_udf_reg_3_func.so component_udf_reg_avg_func.so component_udf_reg_int_func.so component_udf_reg_int_same_func.so component_udf_reg_only_3_func.so component_udf_reg_real_func.so component_udf_unreg_3_func.so component_udf_unreg_int_func.so component_udf_unreg_real_func.so daemon_example.ini dialog.so ha_rocksdb.so innodb_engine.so libdaemon_example.so libmemcached.so libpluginmecab.so libtest_framework.so libtest_services.so libtest_services_threaded.so libtest_session_attach.so libtest_session_detach.so libtest_session_info.so libtest_session_in_thd.so libtest_sql_2_sessions.so libtest_sql_all_col_types.so libtest_sql_cmds_1.so libtest_sql_commit.so libtest_sql_complex.so libtest_sql_errors.so libtest_sql_lock.so libtest_sql_processlist.so libtest_sql_replication.so libtest_sql_reset_connection.so libtest_sql_shutdown.so libtest_sql_sleep_is_connected.so libtest_sql_sqlmode.so libtest_sql_stmt.so libtest_sql_stored_procedures_functions.so libtest_sql_views_triggers.so libtest_x_sessions_deinit.so libtest_x_sessions_init.so pfs_example_plugin_employee.so procfs.so qa_auth_client.so qa_auth_interface.so qa_auth_server.so replication_observers_example_plugin.so test_security_context.so test_services_plugin_registry.so test_udf_services.so tokudb_backup.so udf_example.so semisync_master.so semisync_replica.so semisync_slave.so semisync_source.so test_* *test* +rm -fr authentication_*so component_keyring_*so From 063c3228a09544c0631c1b4ca1712abb23818a6a Mon Sep 17 00:00:00 2001 From: Ye Jinrong Date: Mon, 12 Aug 2024 14:24:16 +0800 Subject: [PATCH 18/71] LU --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e65c4e3..a6da6a4 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-26 -- 最后更新时间:2024-08-08。 +- 最后更新时间:2024-08-12。 ## 镜像仓库列表 - GreatSQL,构建GreatSQL运行环境的Docker镜像 From 43f182bad48602525bc2bf9ffd86ef1206476197 Mon Sep 17 00:00:00 2001 From: Ye Jinrong Date: Tue, 13 Aug 2024 15:40:30 +0800 Subject: [PATCH 19/71] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=97=B6=E5=8C=BA?= =?UTF-8?q?=E5=8F=82=E6=95=B0TZ=E8=AF=B4=E6=98=8E=E5=BB=BA=E8=AE=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GreatSQL/CHANGELOG.md | 9 ++------- GreatSQL/README.md | 7 ++++++- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/GreatSQL/CHANGELOG.md b/GreatSQL/CHANGELOG.md index 790a1fc..c2e6102 100644 --- a/GreatSQL/CHANGELOG.md +++ b/GreatSQL/CHANGELOG.md @@ -1,18 +1,13 @@ # 8.0.32-26 更新日志 -## 2024.8.12 +## 2024.8 +* 增加时区参数(`TZ`)说明建议。 * 修改MAXPERF默认值(不再默认为1) * 裁剪更多文件 - -## 2024.8.8 * 将基础镜像修改为Oracle Linux 8-sim,缩减镜像尺寸 * 增加腾讯云TCR容器资源 * 客户端prompt微调,增加空格 - -## 2024.8.7 * 修复初始化不当导致某些连接无法获取账户名的问题, issue: https://greatsql.cn/thread-840-1-1.html - -## 2024.8.5 * 默认关闭NUMA ## 2024.7.30 diff --git a/GreatSQL/README.md b/GreatSQL/README.md index 2ec213b..1e9da0c 100644 --- a/GreatSQL/README.md +++ b/GreatSQL/README.md @@ -11,7 +11,7 @@ - 维护者: GreatSQL(greatsql@greatdb.com) - 联系我们:greatsql@greatdb.com - 最新版本:GreatSQL 8.0.32-26 -- 最后更新时间:2024-08-12 +- 最后更新时间:2024-08-13 ## 支持哪些tag @@ -49,6 +49,7 @@ $ docker pull ccr.ccs.tencentyun.com/greatsql/greatsql:8.0.32-26 ```shell $ docker run -d \ --name greatsql --hostname=greatsql \ +-e TZ="Asia/Shanghai" \ greatsql/greatsql ``` @@ -66,6 +67,7 @@ $ docker run -d \ -v /data/greatsql/my.cnf:/etc/my.cnf \ -v /data/greatsql/data:/data \ --name greatsql --hostname=greatsql \ +-e TZ="Asia/Shanghai" \ greatsql/greatsql ``` @@ -413,6 +415,9 @@ MySQL 8.0.26开始,可以为view change单独指定一个GTID前缀,避免 设置表名大小写选项 lower_case_table_names,设置为0表示区分大小写,设置为1表示不区分带下写。默认值:0。 非必选项。 +- **TZ** +设置容器时区,例如设置为 "Asia/Shanghai" 表示采用东八区(+8:00小时)。 + ## 文件介绍 - CHANGELOG.md,更新历史 - docker-compose,利用docker-compose拉起的示例文件 From be0cc3ed0584a4e65406be1119a7236b00514cf5 Mon Sep 17 00:00:00 2001 From: Ye Jinrong Date: Tue, 13 Aug 2024 15:40:35 +0800 Subject: [PATCH 20/71] LU --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a6da6a4..e62114c 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-26 -- 最后更新时间:2024-08-12。 +- 最后更新时间:2024-08-13。 ## 镜像仓库列表 - GreatSQL,构建GreatSQL运行环境的Docker镜像 From a508d85e63885017ab8a23cdecfbe39743ad4f22 Mon Sep 17 00:00:00 2001 From: Ye Jinrong Date: Tue, 13 Aug 2024 20:49:56 +0800 Subject: [PATCH 21/71] =?UTF-8?q?=E8=B0=83=E6=95=B4dnf=20clean=20all?= =?UTF-8?q?=E4=BD=8D=E7=BD=AE=EF=BC=8C=E6=94=BE=E5=9C=A8=E5=90=8E=E9=9D=A2?= =?UTF-8?q?=EF=BC=8C=E4=BB=A5=E6=B8=85=E9=99=A4=E6=9B=B4=E5=A4=9Acache?= =?UTF-8?q?=EF=BC=9B=E6=9E=84=E5=BB=BA=E8=BF=87=E7=A8=8B=E4=B8=AD=E6=89=80?= =?UTF-8?q?=E6=9C=89=E6=97=A5=E5=BF=97=E9=83=BD=E6=89=93=E5=8D=B0=E5=87=BA?= =?UTF-8?q?=E6=9D=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GreatSQL-Build/CHANGELOG.md | 6 +++++- GreatSQL-Build/Dockerfile | 23 ++++++++++++----------- GreatSQL-Build/README.md | 3 +-- 3 files changed, 18 insertions(+), 14 deletions(-) diff --git a/GreatSQL-Build/CHANGELOG.md b/GreatSQL-Build/CHANGELOG.md index f2ec861..ffea4da 100644 --- a/GreatSQL-Build/CHANGELOG.md +++ b/GreatSQL-Build/CHANGELOG.md @@ -1,6 +1,10 @@ # 8.0.32-26 更新日志 -## 2024.7.30 +## 2024.8 +* 调整dnf clean all位置,放在后面,以清除更多cache +* 构建过程中所有日志都打印出来 + +## 2024.7 * 更新到GreatSQL 8.0.32-26 * 去掉龙芯判断处理逻辑 diff --git a/GreatSQL-Build/Dockerfile b/GreatSQL-Build/Dockerfile index 5869f11..3f5f15d 100644 --- a/GreatSQL-Build/Dockerfile +++ b/GreatSQL-Build/Dockerfile @@ -1,4 +1,5 @@ -FROM centos:8 +#FROM centos:8 +FROM registry.cn-beijing.aliyuncs.com/greatsql/centos:8 ENV LANG en_US.utf8 LABEL maintainer="greatsql.cn" \ @@ -27,21 +28,21 @@ 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-* ; \ -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 && \ +curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo && \ +sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo && \ rm -f /etc/yum.repos.d/CentOS-Linux-* ; \ -dnf clean all > /dev/null 2>&1 && \ -dnf makecache > /dev/null 2>&1 && \ -dnf update -y > /dev/null 2>&1 && \ +dnf makecache && \ +dnf update -y && \ rm -f /etc/yum.repos.d/CentOS-Linux-* ; \ -dnf install -y epel-release > /dev/null 2>&1 && \ -dnf install -y ${DEPS} > /dev/null 2>&1 && \ -source /opt/rh/gcc-toolset-11/enable > /dev/null 2>&1 && \ +dnf install -y epel-release && \ +dnf install -y ${DEPS} && \ +dnf clean all && \ +source /opt/rh/gcc-toolset-11/enable && \ echo 'source /opt/rh/gcc-toolset-11/enable' >> /root/.bash_profile; \ /usr/sbin/groupadd -g ${MYSQL_UID} ${MYSQL_USER} && \ /usr/sbin/useradd -u ${MYSQL_UID} -g ${MYSQL_UID} -s /sbin/nologin ${MYSQL_USER} && \ -curl -o ${OPT_DIR}/${GREATSQL_ENV} ${GREATSQL_BUILD_DOWNLOAD_URL}/${GREATSQL_ENV} > /dev/null 2>&1 && \ -curl -o /${ENTRYPOINT} ${GREATSQL_BUILD_DOWNLOAD_URL}/${ENTRYPOINT} > /dev/null 2>&1 && \ +curl -o ${OPT_DIR}/${GREATSQL_ENV} ${GREATSQL_BUILD_DOWNLOAD_URL}/${GREATSQL_ENV} && \ +curl -o /${ENTRYPOINT} ${GREATSQL_BUILD_DOWNLOAD_URL}/${ENTRYPOINT} && \ chmod +x /*sh ${OPT_DIR}/*sh ENTRYPOINT ["/docker-entrypoint.sh"] diff --git a/GreatSQL-Build/README.md b/GreatSQL-Build/README.md index d71757a..b2ec5d9 100644 --- a/GreatSQL-Build/README.md +++ b/GreatSQL-Build/README.md @@ -11,8 +11,7 @@ - 维护者: GreatSQL(greatsql@greatdb.com) - 联系我们:greatsql@greatdb.com - 最新版本:GreatSQL 8.0.32-26 -- 最后更新时间:2024-08-06 -- 支持CPU架构:x86_64、aarch64 +- 最后更新时间:2024-08-13 ## 支持哪些tag From 70b3670b3c168fcde6e20fc1be526fa4dda14ad3 Mon Sep 17 00:00:00 2001 From: Ye Jinrong Date: Wed, 14 Aug 2024 13:53:17 +0800 Subject: [PATCH 22/71] =?UTF-8?q?=E4=B8=8D=E5=86=8D=E5=B1=8F=E8=94=BD?= =?UTF-8?q?=E6=9E=84=E5=BB=BA=E8=BF=87=E7=A8=8B=E4=B8=AD=E7=9A=84=E5=B1=8F?= =?UTF-8?q?=E5=B9=95=E8=BE=93=E5=87=BA=E5=86=85=E5=AE=B9=EF=BC=8C=E6=96=B9?= =?UTF-8?q?=E4=BE=BF=E6=95=85=E9=9A=9C=E6=8E=92=E6=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GreatSQL-Build/docker-entrypoint.sh | 16 ++++++++-------- GreatSQL-Build/greatsql-automake.sh | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/GreatSQL-Build/docker-entrypoint.sh b/GreatSQL-Build/docker-entrypoint.sh index b5fb734..6ceca38 100755 --- a/GreatSQL-Build/docker-entrypoint.sh +++ b/GreatSQL-Build/docker-entrypoint.sh @@ -10,22 +10,22 @@ echo && \ echo "1. downloading sourcecode tarballs and extract" cd ${OPT_DIR} && \ echo " 1.1 downloading sourcecode tarballs ..." && \ -wget -c -O ${GREATSQL_ENV} ${GREATSQL_MAKESH_DOWNLOAD_URL}/${GREATSQL_ENV} >> ${MAKELOG} 2>&1 && \ -wget -c -O ${GREATSQL_MAKESH} ${GREATSQL_MAKESH_DOWNLOAD_URL}/${GREATSQL_MAKESH} >> ${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 ${BOOST}.tar.gz ${BOOST_SRC_DOWNLOAD_URL}/${BOOST}.tar.gz >> ${MAKELOG} 2>&1 && \ -wget -c -O ${GREATSQL_SRC}.tar.xz ${GREATSQL_SRC_DOWNLOAD_URL}/${GREATSQL_SRC}.tar.xz >> ${MAKELOG} 2>&1 && \ +wget -c -O ${GREATSQL_ENV} ${GREATSQL_MAKESH_DOWNLOAD_URL}/${GREATSQL_ENV} && \ +wget -c -O ${GREATSQL_MAKESH} ${GREATSQL_MAKESH_DOWNLOAD_URL}/${GREATSQL_MAKESH} && \ +wget -c -O ${RPCGEN} ${GREATSQL_BUILD_DOWNLOAD_URL}/${RPCGEN} && \ +wget -c -O ${PATCHELF}.tar.gz ${GREATSQL_BUILD_DOWNLOAD_URL}/${PATCHELF}.tar.gz && \ +wget -c -O ${BOOST}.tar.gz ${BOOST_SRC_DOWNLOAD_URL}/${BOOST}.tar.gz && \ +wget -c -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}/${GREATSQL_SRC}*z && \ chown -R ${MYSQL_USER}:${MYSQL_USER} ${OPT_DIR} && \ -dnf install -y ${RPCGEN} >> ${MAKELOG} 2>&1 && \ +dnf install -y ${RPCGEN} && \ chmod +x ${OPT_DIR}/*sh && \ echo && \ echo "2. compile patchelf"; \ -cd ${OPT_DIR}/${PATCHELF} && ./bootstrap.sh >> ${MAKELOG} > /dev/null 2>&1 && \ +cd ${OPT_DIR}/${PATCHELF} && ./bootstrap.sh >> ${MAKELOG} && \ ./configure >> ${MAKELOG} > /dev/null 2>&1 && \ make >> ${MAKELOG} > /dev/null 2>&1 && \ make install >> ${MAKELOG} > /dev/null 2>&1 && \ diff --git a/GreatSQL-Build/greatsql-automake.sh b/GreatSQL-Build/greatsql-automake.sh index 5a68064..6f604ff 100755 --- a/GreatSQL-Build/greatsql-automake.sh +++ b/GreatSQL-Build/greatsql-automake.sh @@ -174,7 +174,7 @@ make -j${MAKE_JOBS} >> ${MAKELOG} 2>&1 && \ make -j${MAKE_JOBS} install >> ${MAKELOG} 2>&1 echo " 3.2 remove mysql-test from GreatSQL" -rm -fr ${DEST_DIR}/mysql-test 2 > /dev/null +rm -fr ${DEST_DIR}/mysql-test echo " 3.3 make dynamic link for GreatSQL" # strip binaries to get minimal package From 323d5c68d5fc5aacfd992758f5bb4e3be7da9aeb Mon Sep 17 00:00:00 2001 From: Ye Jinrong Date: Wed, 14 Aug 2024 13:53:35 +0800 Subject: [PATCH 23/71] LU --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e62114c..e05195b 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-26 -- 最后更新时间:2024-08-13。 +- 最后更新时间:2024-08-14。 ## 镜像仓库列表 - GreatSQL,构建GreatSQL运行环境的Docker镜像 From 7cd43f9251fec0bcb1688412fb9860c6d620fd8c Mon Sep 17 00:00:00 2001 From: Ye Jinrong Date: Wed, 14 Aug 2024 14:15:18 +0800 Subject: [PATCH 24/71] =?UTF-8?q?rpcgen=E6=94=B9=E7=94=A8rpm=E5=AE=89?= =?UTF-8?q?=E8=A3=85=EF=BC=9B=E5=A2=9E=E5=8A=A0=E6=9B=B4=E5=A4=9A=E6=97=A5?= =?UTF-8?q?=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GreatSQL-Build/README.md | 2 +- GreatSQL-Build/docker-entrypoint.sh | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/GreatSQL-Build/README.md b/GreatSQL-Build/README.md index b2ec5d9..01c64b9 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-26 -- 最后更新时间:2024-08-13 +- 最后更新时间:2024-08-14 ## 支持哪些tag diff --git a/GreatSQL-Build/docker-entrypoint.sh b/GreatSQL-Build/docker-entrypoint.sh index 6ceca38..b3782fa 100755 --- a/GreatSQL-Build/docker-entrypoint.sh +++ b/GreatSQL-Build/docker-entrypoint.sh @@ -20,8 +20,10 @@ echo " 1.2 extract tarballs ..." && \ tar xf ${OPT_DIR}/${PATCHELF}*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} && \ -dnf install -y ${RPCGEN} && \ +echo " 1.4 install ${RPCGEN} ..." && \ +rpm -ivh --nodeps ${RPCGEN} && \ chmod +x ${OPT_DIR}/*sh && \ echo && \ echo "2. compile patchelf"; \ From b81733b8fe19f13febfa7976edec0921c8a7e0b5 Mon Sep 17 00:00:00 2001 From: Ye Jinrong Date: Wed, 14 Aug 2024 16:24:50 +0800 Subject: [PATCH 25/71] =?UTF-8?q?=E4=BF=AE=E6=94=B9wget=E4=B8=BAcurl?= =?UTF-8?q?=E4=B8=8B=E8=BD=BD=EF=BC=9B=E7=BC=96=E8=AF=91patchelf=E6=97=B6?= =?UTF-8?q?=E9=87=87=E7=94=A8=E5=A4=9A=E8=BF=9B=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GreatSQL-Build/docker-entrypoint.sh | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/GreatSQL-Build/docker-entrypoint.sh b/GreatSQL-Build/docker-entrypoint.sh index b3782fa..363fee5 100755 --- a/GreatSQL-Build/docker-entrypoint.sh +++ b/GreatSQL-Build/docker-entrypoint.sh @@ -10,12 +10,12 @@ echo && \ echo "1. downloading sourcecode tarballs and extract" cd ${OPT_DIR} && \ echo " 1.1 downloading sourcecode tarballs ..." && \ -wget -c -O ${GREATSQL_ENV} ${GREATSQL_MAKESH_DOWNLOAD_URL}/${GREATSQL_ENV} && \ -wget -c -O ${GREATSQL_MAKESH} ${GREATSQL_MAKESH_DOWNLOAD_URL}/${GREATSQL_MAKESH} && \ -wget -c -O ${RPCGEN} ${GREATSQL_BUILD_DOWNLOAD_URL}/${RPCGEN} && \ -wget -c -O ${PATCHELF}.tar.gz ${GREATSQL_BUILD_DOWNLOAD_URL}/${PATCHELF}.tar.gz && \ -wget -c -O ${BOOST}.tar.gz ${BOOST_SRC_DOWNLOAD_URL}/${BOOST}.tar.gz && \ -wget -c -O ${GREATSQL_SRC}.tar.xz ${GREATSQL_SRC_DOWNLOAD_URL}/${GREATSQL_SRC}.tar.xz && \ +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 ${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 && \ @@ -29,8 +29,8 @@ echo && \ echo "2. compile patchelf"; \ cd ${OPT_DIR}/${PATCHELF} && ./bootstrap.sh >> ${MAKELOG} && \ ./configure >> ${MAKELOG} > /dev/null 2>&1 && \ -make >> ${MAKELOG} > /dev/null 2>&1 && \ -make install >> ${MAKELOG} > /dev/null 2>&1 && \ +make -j${MAKE_JOBS} >> ${MAKELOG} > /dev/null 2>&1 && \ +make -j${MAKE_JOBS} install >> ${MAKELOG} > /dev/null 2>&1 && \ echo && \ echo "3. compile GreatSQL"; \ su - ${MYSQL_USER} -s /bin/bash -c "cd /opt; /bin/sh /opt/greatsql-automake.sh" && \ From 3db77c22b31efc48f04f4de86f9dc8d5715f7e55 Mon Sep 17 00:00:00 2001 From: Ye Jinrong Date: Wed, 14 Aug 2024 17:11:27 +0800 Subject: [PATCH 26/71] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=8E=8B=E7=BC=A9?= =?UTF-8?q?=E6=89=93=E5=8C=85=E8=BF=87=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GreatSQL-Build/docker-entrypoint.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/GreatSQL-Build/docker-entrypoint.sh b/GreatSQL-Build/docker-entrypoint.sh index 363fee5..809787c 100755 --- a/GreatSQL-Build/docker-entrypoint.sh +++ b/GreatSQL-Build/docker-entrypoint.sh @@ -36,7 +36,8 @@ echo "3. compile GreatSQL"; \ su - ${MYSQL_USER} -s /bin/bash -c "cd /opt; /bin/sh /opt/greatsql-automake.sh" && \ echo && \ echo "4. greatsql build completed!" ; \ -ls -la ${OPT_DIR} | grep GreatSQL.*glibc.* && ${OPT_DIR}/GreatSQL*glibc*/bin/mysqld --verbose --version && \ +ls -la ${OPT_DIR} | grep ${GREATSQL} && ${OPT_DIR}/${GREATSQL}/bin/mysqld --verbose --version && \ +cd ${OPT_DIR} && tar cf ${GREATSQL}.tar ${GREATSQL} && xz -9 -f -T ${MAKE_JOBS} ${GREATSQL}.tar && \ echo && \ echo "5. remove files and clean up" ;\ cd ${OPT_DIR} && rm -rf ${BOOST} ${GREATSQL_SRC} ${PATCHELF} From f6195e9a0b48a05ad318f67902ede6aa12ce00f6 Mon Sep 17 00:00:00 2001 From: Ye Jinrong Date: Wed, 14 Aug 2024 17:12:04 +0800 Subject: [PATCH 27/71] =?UTF-8?q?=E4=BB=8Ecentos=E6=94=B9=E4=B8=BAoracleli?= =?UTF-8?q?nux=EF=BC=9B=E9=87=87=E7=94=A8=E5=A4=9A=E9=98=B6=E6=AE=B5?= =?UTF-8?q?=E6=89=93=E5=8C=85=EF=BC=8C=E9=99=8D=E4=BD=8E=E9=95=9C=E5=83=8F?= =?UTF-8?q?=E5=A4=A7=E5=B0=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GreatSQL-Build/Dockerfile | 58 +++++++++++++++++++++------------------ 1 file changed, 31 insertions(+), 27 deletions(-) diff --git a/GreatSQL-Build/Dockerfile b/GreatSQL-Build/Dockerfile index 3f5f15d..693a581 100644 --- a/GreatSQL-Build/Dockerfile +++ b/GreatSQL-Build/Dockerfile @@ -1,13 +1,15 @@ -#FROM centos:8 -FROM registry.cn-beijing.aliyuncs.com/greatsql/centos:8 -ENV LANG en_US.utf8 +#FROM oraclelinux:8-slim as builder +FROM ccr.ccs.tencentyun.com/greatsql/oraclelinux:8-slim as builder + +WORKDIR / LABEL maintainer="greatsql.cn" \ email="greatsql@greatdb.com" \ forum="https://greatsql.cn/forum.php" \ gitee="https://gitee.com/GreatSQL/GreatSQL-Docker" -ARG OPT_DIR=/opt \ +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" \ @@ -16,27 +18,13 @@ ENTRYPOINT="docker-entrypoint.sh" \ DEPS="autoconf automake binutils bison 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 wget zlib-devel" - -RUN (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/*;\ -rm -f /lib/systemd/system/local-fs.target.wants/*; \ -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-* ; \ -curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo && \ -sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo && \ -rm -f /etc/yum.repos.d/CentOS-Linux-* ; \ -dnf makecache && \ -dnf update -y && \ -rm -f /etc/yum.repos.d/CentOS-Linux-* ; \ -dnf install -y epel-release && \ -dnf install -y ${DEPS} && \ -dnf clean all && \ +openssl openssl-devel pam-devel readline-devel zlib-devel xz util-linux findutils" + +RUN echo '[main]' > /etc/dnf/dnf.conf && \ +microdnf install -y oracle-epel-release-el8 && \ +microdnf install -y ${DEPS} && \ +microdnf update -y && \ +microdnf clean all && \ source /opt/rh/gcc-toolset-11/enable && \ echo 'source /opt/rh/gcc-toolset-11/enable' >> /root/.bash_profile; \ /usr/sbin/groupadd -g ${MYSQL_UID} ${MYSQL_USER} && \ @@ -44,6 +32,22 @@ echo 'source /opt/rh/gcc-toolset-11/enable' >> /root/.bash_profile; \ curl -o ${OPT_DIR}/${GREATSQL_ENV} ${GREATSQL_BUILD_DOWNLOAD_URL}/${GREATSQL_ENV} && \ curl -o /${ENTRYPOINT} ${GREATSQL_BUILD_DOWNLOAD_URL}/${ENTRYPOINT} && \ chmod +x /*sh ${OPT_DIR}/*sh +sh /docker-entrypoint.sh + + +#FROM oraclelinux:8-slim as greatsql_build +FROM ccr.ccs.tencentyun.com/greatsql/oraclelinux:8-slim as greatsql_build + +LABEL maintainer="greatsql.cn" \ +email="greatsql@greatdb.com" \ +forum="https://greatsql.cn/forum.php" \ +gitee="https://gitee.com/GreatSQL/GreatSQL-Docker" + +ARG TARGETARCH \ +OPT_DIR=/opt + +COPY --from=builder ${OPT_DIR}/GreatSQL*.tar.xz ${OPT_DIR} + +RUN echo 'GreatSQL 8.0.32-26 tarball:' && ls -lha ${OPT_DIR} -ENTRYPOINT ["/docker-entrypoint.sh"] -CMD ["bash"] +CMD ["sh"] From 492268c531e461ddc98b998525c3f2e0fac952cd Mon Sep 17 00:00:00 2001 From: Ye Jinrong Date: Wed, 14 Aug 2024 17:12:38 +0800 Subject: [PATCH 28/71] =?UTF-8?q?=E4=BB=8Ecentos=E6=94=B9=E4=B8=BAoracleli?= =?UTF-8?q?nux=EF=BC=9B=E9=87=87=E7=94=A8=E5=A4=9A=E9=98=B6=E6=AE=B5?= =?UTF-8?q?=E6=89=93=E5=8C=85=EF=BC=8C=E9=99=8D=E4=BD=8E=E9=95=9C=E5=83=8F?= =?UTF-8?q?=E5=A4=A7=E5=B0=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GreatSQL-Build/CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/GreatSQL-Build/CHANGELOG.md b/GreatSQL-Build/CHANGELOG.md index ffea4da..9c7abe5 100644 --- a/GreatSQL-Build/CHANGELOG.md +++ b/GreatSQL-Build/CHANGELOG.md @@ -1,6 +1,8 @@ # 8.0.32-26 更新日志 ## 2024.8 +* 采用多阶段打包,降低镜像大小 +* 从centos改为oraclelinux * 调整dnf clean all位置,放在后面,以清除更多cache * 构建过程中所有日志都打印出来 From d22a8a07e8caec023d5a533eff92015fcdd58de4 Mon Sep 17 00:00:00 2001 From: Ye Jinrong Date: Thu, 15 Aug 2024 08:34:00 +0800 Subject: [PATCH 29/71] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=B8=80=E4=B8=AA?= =?UTF-8?q?=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GreatSQL-Build/Dockerfile | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/GreatSQL-Build/Dockerfile b/GreatSQL-Build/Dockerfile index 693a581..7481be8 100644 --- a/GreatSQL-Build/Dockerfile +++ b/GreatSQL-Build/Dockerfile @@ -31,7 +31,7 @@ echo 'source /opt/rh/gcc-toolset-11/enable' >> /root/.bash_profile; \ /usr/sbin/useradd -u ${MYSQL_UID} -g ${MYSQL_UID} -s /sbin/nologin ${MYSQL_USER} && \ curl -o ${OPT_DIR}/${GREATSQL_ENV} ${GREATSQL_BUILD_DOWNLOAD_URL}/${GREATSQL_ENV} && \ curl -o /${ENTRYPOINT} ${GREATSQL_BUILD_DOWNLOAD_URL}/${ENTRYPOINT} && \ -chmod +x /*sh ${OPT_DIR}/*sh +chmod +x /*sh ${OPT_DIR}/*sh && \ sh /docker-entrypoint.sh @@ -46,8 +46,7 @@ gitee="https://gitee.com/GreatSQL/GreatSQL-Docker" ARG TARGETARCH \ OPT_DIR=/opt +# copy GreatSQL tarball to /opt COPY --from=builder ${OPT_DIR}/GreatSQL*.tar.xz ${OPT_DIR} -RUN echo 'GreatSQL 8.0.32-26 tarball:' && ls -lha ${OPT_DIR} - CMD ["sh"] From 48fae35ee4c27c68dee3a5ae91a6e4a003a274e8 Mon Sep 17 00:00:00 2001 From: Ye Jinrong Date: Thu, 15 Aug 2024 08:34:20 +0800 Subject: [PATCH 30/71] LU --- GreatSQL-Build/README.md | 2 +- README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/GreatSQL-Build/README.md b/GreatSQL-Build/README.md index 01c64b9..e13cc14 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-26 -- 最后更新时间:2024-08-14 +- 最后更新时间:2024-08-15 ## 支持哪些tag diff --git a/README.md b/README.md index e05195b..ab79de4 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-26 -- 最后更新时间:2024-08-14。 +- 最后更新时间:2024-08-15。 ## 镜像仓库列表 - GreatSQL,构建GreatSQL运行环境的Docker镜像 From fd1b9867e535bef5685a9b5a0ae7f8cb18fa4687 Mon Sep 17 00:00:00 2001 From: Ye Jinrong Date: Mon, 19 Aug 2024 08:42:20 +0800 Subject: [PATCH 31/71] =?UTF-8?q?=E6=94=B9=E6=88=90=E5=8F=AA=E5=88=9D?= =?UTF-8?q?=E5=A7=8B=E5=8C=96=E7=BC=96=E8=AF=91=E7=8E=AF=E5=A2=83=EF=BC=8C?= =?UTF-8?q?=E7=94=B1=E7=94=A8=E6=88=B7=E8=87=AA=E8=A1=8C=E5=90=AF=E5=8A=A8?= =?UTF-8?q?=E7=BC=96=E8=AF=91=E5=B7=A5=E4=BD=9C;=E4=B8=8D=E5=86=8D?= =?UTF-8?q?=E9=87=87=E7=94=A8=E5=A4=9A=E9=98=B6=E6=AE=B5=E6=89=93=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GreatSQL-Build/CHANGELOG.md | 5 ++ GreatSQL-Build/Dockerfile | 45 ++++----------- GreatSQL-Build/README.md | 56 ++++++++++++------- GreatSQL-Build/greatsql-setenv.sh | 7 ++- ...r-entrypoint.sh => greatsql_build_init.sh} | 15 +++-- 5 files changed, 67 insertions(+), 61 deletions(-) rename GreatSQL-Build/{docker-entrypoint.sh => greatsql_build_init.sh} (80%) diff --git a/GreatSQL-Build/CHANGELOG.md b/GreatSQL-Build/CHANGELOG.md index 9c7abe5..acda9ea 100644 --- a/GreatSQL-Build/CHANGELOG.md +++ b/GreatSQL-Build/CHANGELOG.md @@ -1,5 +1,10 @@ # 8.0.32-26 更新日志 +## 2024.8.19 +* 不再采用多阶段打包 +* 改成只初始化编译环境,由用户自行启动编译工作 +* 进一步压缩镜像尺寸 + ## 2024.8 * 采用多阶段打包,降低镜像大小 * 从centos改为oraclelinux diff --git a/GreatSQL-Build/Dockerfile b/GreatSQL-Build/Dockerfile index 7481be8..2b47155 100644 --- a/GreatSQL-Build/Dockerfile +++ b/GreatSQL-Build/Dockerfile @@ -1,7 +1,6 @@ -#FROM oraclelinux:8-slim as builder -FROM ccr.ccs.tencentyun.com/greatsql/oraclelinux:8-slim as builder - -WORKDIR / +FROM oraclelinux:8-slim as builder +#FROM registry.cn-beijing.aliyuncs.com/greatsql/oraclelinux:8-slim as builder +#FROM ccr.ccs.tencentyun.com/greatsql/oraclelinux:8-slim as builder LABEL maintainer="greatsql.cn" \ email="greatsql@greatdb.com" \ @@ -14,39 +13,15 @@ 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_ENV="greatsql-setenv.sh" \ -ENTRYPOINT="docker-entrypoint.sh" \ -DEPS="autoconf automake binutils bison 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 xz util-linux findutils" +GREATSQL_BUILD_INIT="greatsql_build_init.sh" RUN echo '[main]' > /etc/dnf/dnf.conf && \ -microdnf install -y oracle-epel-release-el8 && \ -microdnf install -y ${DEPS} && \ -microdnf update -y && \ +microdnf install -y util-linux && \ microdnf clean all && \ -source /opt/rh/gcc-toolset-11/enable && \ -echo 'source /opt/rh/gcc-toolset-11/enable' >> /root/.bash_profile; \ -/usr/sbin/groupadd -g ${MYSQL_UID} ${MYSQL_USER} && \ -/usr/sbin/useradd -u ${MYSQL_UID} -g ${MYSQL_UID} -s /sbin/nologin ${MYSQL_USER} && \ -curl -o ${OPT_DIR}/${GREATSQL_ENV} ${GREATSQL_BUILD_DOWNLOAD_URL}/${GREATSQL_ENV} && \ -curl -o /${ENTRYPOINT} ${GREATSQL_BUILD_DOWNLOAD_URL}/${ENTRYPOINT} && \ +curl -OL -o ${OPT_DIR}/${GREATSQL_ENV} ${GREATSQL_BUILD_DOWNLOAD_URL}/${GREATSQL_ENV} && \ +curl -OL -o /${GREATSQL_BUILD_INIT} ${GREATSQL_BUILD_DOWNLOAD_URL}/${GREATSQL_BUILD_INIT} && \ chmod +x /*sh ${OPT_DIR}/*sh && \ -sh /docker-entrypoint.sh - - -#FROM oraclelinux:8-slim as greatsql_build -FROM ccr.ccs.tencentyun.com/greatsql/oraclelinux:8-slim as greatsql_build - -LABEL maintainer="greatsql.cn" \ -email="greatsql@greatdb.com" \ -forum="https://greatsql.cn/forum.php" \ -gitee="https://gitee.com/GreatSQL/GreatSQL-Docker" - -ARG TARGETARCH \ -OPT_DIR=/opt - -# copy GreatSQL tarball to /opt -COPY --from=builder ${OPT_DIR}/GreatSQL*.tar.xz ${OPT_DIR} +/usr/sbin/groupadd -g ${MYSQL_UID} ${MYSQL_USER} && \ +/usr/sbin/useradd -u ${MYSQL_UID} -g ${MYSQL_UID} -s /sbin/nologin ${MYSQL_USER} -CMD ["sh"] +ENTRYPOINT ["sh"] diff --git a/GreatSQL-Build/README.md b/GreatSQL-Build/README.md index e13cc14..60dbef7 100644 --- a/GreatSQL-Build/README.md +++ b/GreatSQL-Build/README.md @@ -5,13 +5,13 @@ 全自动编译GreatSQL源码,生成二进制包。 -适用于CentOS 8 x86_64/aarch64 环境,更多环境适配请自行修改Dockerfile及相关脚本中的参数。 +适用于 OracleLinux/CentOS x86_64/aarch64 环境,更多环境适配请自行修改Dockerfile及相关脚本中的参数。 ## 基本信息 - 维护者: GreatSQL(greatsql@greatdb.com) - 联系我们:greatsql@greatdb.com - 最新版本:GreatSQL 8.0.32-26 -- 最后更新时间:2024-08-15 +- 最后更新时间:2024-08-19 ## 支持哪些tag @@ -19,12 +19,14 @@ - [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拉取,例如: +如果无法从 hub.docker.com 拉取,可以尝试从阿里云 ACR 或腾讯云 TCR 拉取,例如: ```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 ccr.ccs.tencentyun.com/greatsql/greatsql_build +$ docker pull ccr.ccs.tencentyun.com/greatsql/greatsql_build:8.0.32-26 ``` > 如果提示 timeout 连接超时错误,多重试几次应该就好了。 @@ -38,48 +40,60 @@ $ docker build -t greatsql/greatsql_build . 在构建镜像时,会自动从服务器上下载相应的源码包文件、初始化脚本等文件,并全自动化方式完成镜像构建工作。 +如果无法从 hub.docker.com 拉取 oraclelinux 镜像,则修改 `Dockerfile` 文件的前几行,将镜像资源修改为阿里云或腾讯云: + +```ini + 1 #FROM oraclelinux:8-slim as builder + 2 FROM registry.cn-beijing.aliyuncs.com/greatsql/oraclelinux:8-slim as builder + 3 #FROM ccr.ccs.tencentyun.com/greatsql/oraclelinux:8-slim as builder +``` + ## GreatSQL Build Docker镜像使用 ```shell # 创建新容器 -$ docker run -itd --hostname greatsql_build --name greatsql_build greatsql/greatsql_build bash +$ docker run -itd --hostname greatsql_build --name greatsql_build greatsql/greatsql_build + +# 进入容器,手动启动编译工作 +$ docker exec -it greatsql_build sh +sh-4.4# pwd +/ +sh-4.4# +sh-4.4# ls +bin boot dev etc greatsql_build_init.sh home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var -# 查看自动编译进展 -$ docker logs greatsql_build +sh-4.4# sh ./greatsql_build_init.sh -0. touch logfile /tmp/greatsql-automake.log +0. GreatSQL-Build INIT 1. downloading sourcecode tarballs and extract 1.1 downloading sourcecode tarballs ... - 1.2 extract tarballs ... - -2. compile patchelf - +... 3. compile GreatSQL 3.1 compiling GreatSQL 3.2 remove mysql-test from GreatSQL 3.3 make dynamic link for GreatSQL 4. greatsql build completed! -drwxrwxr-x 13 mysql mysql 293 Feb 22 01:33 GreatSQL-8.0.32-26-centos-glibc2.28-x86_64 -/opt/GreatSQL-8.0.32-26-centos-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 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) -5. remove files and clean up +5. remove files and clean up ``` -可以看到已经完成编译,如果需要的话,可以将Docker容器中的二进制包文件拷贝到宿主机上,例如: +可以看到已经完成编译,可以将容器中编译好的二进制包文件拷贝到宿主机上,例如: ```shell -$ docker cp greatsql_build:/opt/GreatSQL-8.0.32-26-centos-glibc2.28-x86_64 /usr/local/ +$ docker cp greatsql_build:/opt/GreatSQL-8.0.32-26-ol-glibc2.28-x86_64 /usr/local/ ``` -如果宿主机环境也是CentOS 8 x86_64的话,这就可以在宿主机环境下直接使用该二进制文件包了。 +如果宿主机环境也是 OracleLinux/CentOS x86_64 的话,这就可以在宿主机环境下直接使用该二进制文件包了。 ## 文件介绍 - CHANGELOG.md,更新历史 -- docker-entrypoint.sh,镜像初始化脚本,该脚本中再调用greatsql-automake.sh实现自动编译。 -- Dockerfile,用于构建GreatSQL编译环境 -- greatsql-automake.sh,GreatSQL自动编译脚本 +- Dockerfile,用于构建初始化 GreatSQL 编译环境。 +- greatsql-automake.sh,GreatSQL自动编译脚本,编译过程中产生的日志默认输出到 /tmp/greatsql-automake.log 中。 - greatsql-setenv.sh,通用环境变量设置脚本 +- greatsql_build_init.sh,GreatSQL 编译调度入口脚本,该脚本中完成编译环境所需的软件包安装,并调用 greatsql-automake.sh 实现自动编译。 ## 联系我们 扫码关注微信公众号 diff --git a/GreatSQL-Build/greatsql-setenv.sh b/GreatSQL-Build/greatsql-setenv.sh index 2b40bca..edc03d7 100755 --- a/GreatSQL-Build/greatsql-setenv.sh +++ b/GreatSQL-Build/greatsql-setenv.sh @@ -1,4 +1,4 @@ -#/bin/bash +#/bin/sh if [ -f ~/.bash_profile ] ; then . ~/.bash_profile @@ -43,3 +43,8 @@ CMAKE_EXE_LINKER_FLAGS="" 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++ \ +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" diff --git a/GreatSQL-Build/docker-entrypoint.sh b/GreatSQL-Build/greatsql_build_init.sh similarity index 80% rename from GreatSQL-Build/docker-entrypoint.sh rename to GreatSQL-Build/greatsql_build_init.sh index 809787c..c3b7e8c 100755 --- a/GreatSQL-Build/docker-entrypoint.sh +++ b/GreatSQL-Build/greatsql_build_init.sh @@ -1,8 +1,16 @@ -#!/bin/bash +#!/bin/sh . /opt/greatsql-setenv.sh -echo "0. touch logfile ${MAKELOG}" +echo "0. GreatSQL-Build INIT" && \ +microdnf install -y oracle-epel-release-el8 && \ +microdnf makecache && \ +microdnf install -y ${DEPS} && \ +microdnf update -y && \ +microdnf clean all && \ +source /opt/rh/gcc-toolset-11/enable && \ +echo 'source /opt/rh/gcc-toolset-11/enable' >> /root/.bash_profile; \ +chmod +x /*sh ${OPT_DIR}/*sh && \ touch ${MAKELOG} && \ chown ${MYSQL_USER}:${MYSQL_USER} ${MAKELOG} && \ chmod 0777 ${MAKELOG} && \ @@ -33,7 +41,7 @@ make -j${MAKE_JOBS} >> ${MAKELOG} > /dev/null 2>&1 && \ make -j${MAKE_JOBS} install >> ${MAKELOG} > /dev/null 2>&1 && \ echo && \ echo "3. compile GreatSQL"; \ -su - ${MYSQL_USER} -s /bin/bash -c "cd /opt; /bin/sh /opt/greatsql-automake.sh" && \ +su - ${MYSQL_USER} -s /bin/sh -c "cd /opt; /bin/sh /opt/greatsql-automake.sh" && \ echo && \ echo "4. greatsql build completed!" ; \ ls -la ${OPT_DIR} | grep ${GREATSQL} && ${OPT_DIR}/${GREATSQL}/bin/mysqld --verbose --version && \ @@ -41,4 +49,3 @@ cd ${OPT_DIR} && tar cf ${GREATSQL}.tar ${GREATSQL} && xz -9 -f -T ${MAKE_JOBS} echo && \ echo "5. remove files and clean up" ;\ cd ${OPT_DIR} && rm -rf ${BOOST} ${GREATSQL_SRC} ${PATCHELF} -/bin/bash From 8d9873f4ce237e8514f8298c3a6a04eed095bbe0 Mon Sep 17 00:00:00 2001 From: Ye Jinrong Date: Mon, 19 Aug 2024 08:42:30 +0800 Subject: [PATCH 32/71] LU --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ab79de4..2fb8570 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-26 -- 最后更新时间:2024-08-15。 +- 最后更新时间:2024-08-19。 ## 镜像仓库列表 - GreatSQL,构建GreatSQL运行环境的Docker镜像 From 4486b9c35f93d5e1ca03e95520b966ede4d33e77 Mon Sep 17 00:00:00 2001 From: Ye Jinrong Date: Mon, 19 Aug 2024 08:43:36 +0800 Subject: [PATCH 33/71] =?UTF-8?q?=E5=A2=9E=E5=8A=A0xz=E5=AE=89=E8=A3=85?= =?UTF-8?q?=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-Build/greatsql-setenv.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/GreatSQL-Build/greatsql-setenv.sh b/GreatSQL-Build/greatsql-setenv.sh index edc03d7..e6272f7 100755 --- a/GreatSQL-Build/greatsql-setenv.sh +++ b/GreatSQL-Build/greatsql-setenv.sh @@ -47,4 +47,4 @@ fi DEPS="autoconf automake binutils bison 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" +openssl openssl-devel pam-devel readline-devel zlib-devel findutils procps-ng xz" From a8e30bfb6f3228fadf20ec28bf786f6acb122ea8 Mon Sep 17 00:00:00 2001 From: Ye Jinrong Date: Mon, 19 Aug 2024 12:29:11 +0800 Subject: [PATCH 34/71] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=B8=8D=E8=83=BD?= =?UTF-8?q?=E4=B8=8B=E8=BD=BD=E5=88=B0/opt=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GreatSQL-Build/Dockerfile | 17 +++++++++-------- GreatSQL-Build/README.md | 2 ++ 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/GreatSQL-Build/Dockerfile b/GreatSQL-Build/Dockerfile index 2b47155..4c12ccc 100644 --- a/GreatSQL-Build/Dockerfile +++ b/GreatSQL-Build/Dockerfile @@ -1,6 +1,6 @@ -FROM oraclelinux:8-slim as builder -#FROM registry.cn-beijing.aliyuncs.com/greatsql/oraclelinux:8-slim as builder -#FROM ccr.ccs.tencentyun.com/greatsql/oraclelinux:8-slim as builder +FROM oraclelinux:8-slim +#FROM registry.cn-beijing.aliyuncs.com/greatsql/oraclelinux:8-slim +#FROM ccr.ccs.tencentyun.com/greatsql/oraclelinux:8-slim LABEL maintainer="greatsql.cn" \ email="greatsql@greatdb.com" \ @@ -15,13 +15,14 @@ GREATSQL_BUILD_DOWNLOAD_URL="https://gitee.com/GreatSQL/GreatSQL-Docker/raw/grea GREATSQL_ENV="greatsql-setenv.sh" \ GREATSQL_BUILD_INIT="greatsql_build_init.sh" -RUN echo '[main]' > /etc/dnf/dnf.conf && \ -microdnf install -y util-linux && \ -microdnf clean all && \ -curl -OL -o ${OPT_DIR}/${GREATSQL_ENV} ${GREATSQL_BUILD_DOWNLOAD_URL}/${GREATSQL_ENV} && \ +RUN curl -OL -o /${GREATSQL_ENV} ${GREATSQL_BUILD_DOWNLOAD_URL}/${GREATSQL_ENV} && \ curl -OL -o /${GREATSQL_BUILD_INIT} ${GREATSQL_BUILD_DOWNLOAD_URL}/${GREATSQL_BUILD_INIT} && \ +mv /${GREATSQL_ENV} ${OPT_DIR} && \ 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} +/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 clean all ENTRYPOINT ["sh"] diff --git a/GreatSQL-Build/README.md b/GreatSQL-Build/README.md index 60dbef7..a5f818c 100644 --- a/GreatSQL-Build/README.md +++ b/GreatSQL-Build/README.md @@ -88,6 +88,8 @@ $ docker cp greatsql_build:/opt/GreatSQL-8.0.32-26-ol-glibc2.28-x86_64 /usr/loca 如果宿主机环境也是 OracleLinux/CentOS x86_64 的话,这就可以在宿主机环境下直接使用该二进制文件包了。 +> 编译过程中,可能会遇到网络问题(DNS解析失败、网络连接超时等)导致失败的话,多重试几次即可。 + ## 文件介绍 - CHANGELOG.md,更新历史 - Dockerfile,用于构建初始化 GreatSQL 编译环境。 From afd3bcb4db61748d2525baf05f7a19533adb0880 Mon Sep 17 00:00:00 2001 From: Ye Jinrong Date: Tue, 3 Sep 2024 09:11:35 +0800 Subject: [PATCH 35/71] =?UTF-8?q?=E5=BD=93MAXPERF=E5=80=BC=E4=B8=8D?= =?UTF-8?q?=E4=B8=BA1=E6=97=B6=E4=B8=8D=E9=A2=9D=E5=A4=96=E8=BE=93?= =?UTF-8?q?=E5=87=BA=EF=BC=8C=E9=81=BF=E5=85=8D=E9=80=A0=E6=88=90=E8=AF=AF?= =?UTF-8?q?=E8=A7=A3/=E5=9B=B0=E6=83=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GreatSQL/CHANGELOG.md | 1 + GreatSQL/greatsql-init.sh | 2 -- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/GreatSQL/CHANGELOG.md b/GreatSQL/CHANGELOG.md index c2e6102..8201167 100644 --- a/GreatSQL/CHANGELOG.md +++ b/GreatSQL/CHANGELOG.md @@ -1,6 +1,7 @@ # 8.0.32-26 更新日志 ## 2024.8 +* 当MAXPERF值不为1时不额外输出,避免造成误解/困惑 * 增加时区参数(`TZ`)说明建议。 * 修改MAXPERF默认值(不再默认为1) * 裁剪更多文件 diff --git a/GreatSQL/greatsql-init.sh b/GreatSQL/greatsql-init.sh index aa60129..b6cf5b7 100755 --- a/GreatSQL/greatsql-init.sh +++ b/GreatSQL/greatsql-init.sh @@ -376,8 +376,6 @@ if [ "${MAXPERF}" == "1" ]; then echo "$(sed "s/\(.*rapid_worker_threads\).*/\1 = ${rapid_thd_maxperf}/ig" /etc/my.cnf)" > /etc/my.cnf echo "$(sed "s/\(.*rapid_hash_table_memory_limit\).*/\1 = 30/ig" /etc/my.cnf)" > /etc/my.cnf echo "$(sed "s/\(.*secondary_engine_parallel_load_workers\).*/\1 = 32/ig" /etc/my.cnf)" > /etc/my.cnf -else - echo "MAXPERF invalid"; fi exec "$@" From 7a59ebcf6c9c0a537852d57acb844a136ca562ff Mon Sep 17 00:00:00 2001 From: Ye Jinrong Date: Thu, 24 Oct 2024 14:55:30 +0800 Subject: [PATCH 36/71] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E9=95=9C=E5=83=8F?= =?UTF-8?q?=E5=9C=B0=E5=9D=80=EF=BC=8C=E5=A2=9E=E5=8A=A0=E9=98=BF=E9=87=8C?= =?UTF-8?q?=E4=BA=91ACR=E8=B5=84=E6=BA=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GreatSQL-Shell/CHANGELOG.md | 3 +++ GreatSQL-Shell/README.md | 5 +++++ 2 files changed, 8 insertions(+) diff --git a/GreatSQL-Shell/CHANGELOG.md b/GreatSQL-Shell/CHANGELOG.md index a141d40..71d6205 100644 --- a/GreatSQL-Shell/CHANGELOG.md +++ b/GreatSQL-Shell/CHANGELOG.md @@ -1,5 +1,8 @@ # 8.0.32-25 更新日志 +## 2024.10.24 +* 更新镜像地址,增加阿里云ACR资源。 + ## 2024.3.13 * 更新GreatSQL-Shell到8.0.32-25最新版本,支持JS语法。 diff --git a/GreatSQL-Shell/README.md b/GreatSQL-Shell/README.md index af7845e..d915bf2 100644 --- a/GreatSQL-Shell/README.md +++ b/GreatSQL-Shell/README.md @@ -15,6 +15,11 @@ - [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) + + ## 怎么使用这个Docker镜像 ### 通过tcp/ip方式连接GreatSQL From 3467a3047019ccf51fadd284f4b62b8c77abc033 Mon Sep 17 00:00:00 2001 From: Ye Jinrong Date: Thu, 24 Oct 2024 14:55:50 +0800 Subject: [PATCH 37/71] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E9=95=9C=E5=83=8F?= =?UTF-8?q?=E5=9C=B0=E5=9D=80=EF=BC=8C=E5=A2=9E=E5=8A=A0=E9=98=BF=E9=87=8C?= =?UTF-8?q?=E4=BA=91ACR=E8=B5=84=E6=BA=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GreatSQL-Shell/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/GreatSQL-Shell/README.md b/GreatSQL-Shell/README.md index d915bf2..a344fb5 100644 --- a/GreatSQL-Shell/README.md +++ b/GreatSQL-Shell/README.md @@ -8,7 +8,7 @@ - 维护者: GreatSQL(greatsql@greatdb.com) - 联系我们:greatsql@greatdb.com - 最新版本:GreatSQL 8.0.32-25 -- 最后更新时间:2024-03-13 +- 最后更新时间:2024-10-24 - 支持CPU架构:x86_64、aarch64 ## 支持哪些tag From b11109ccd777f7220990d1abe4b9cbc8e92d4bad Mon Sep 17 00:00:00 2001 From: Ye Jinrong Date: Mon, 30 Dec 2024 11:23:37 +0800 Subject: [PATCH 38/71] =?UTF-8?q?2024.12.30=E6=9B=B4=E6=96=B0=20*=20?= =?UTF-8?q?=E5=9F=BA=E7=A1=80=E9=95=9C=E5=83=8F=E6=94=B9=E4=B8=BAOracle=20?= =?UTF-8?q?Linux=209-sim=EF=BC=8C=E4=BB=A5=E9=80=82=E9=85=8D=E6=9B=B4?= =?UTF-8?q?=E5=A4=9A=E7=A1=AC=E4=BB=B6=E5=B9=B3=E5=8F=B0=EF=BC=88=E5=A6=82?= =?UTF-8?q?=E6=B5=B7=E5=85=893000=E5=9E=8B=E5=8F=B7=EF=BC=89=20*=20GreatSQ?= =?UTF-8?q?L=E5=AE=89=E8=A3=85=E5=8C=85=E8=B0=83=E6=95=B4=E4=B8=BAminimal?= =?UTF-8?q?=E4=BA=8C=E8=BF=9B=E5=88=B6=E5=8C=85=EF=BC=8C=E4=B8=8D=E5=86=8D?= =?UTF-8?q?=E9=87=87=E7=94=A8RPM=E5=8C=85=E4=BB=A5=E9=80=82=E9=85=8DOracle?= =?UTF-8?q?=20Linux=209-sim=E7=B3=BB=E7=BB=9F=20*=20=E4=BF=9D=E7=95=99mysq?= =?UTF-8?q?ldump=E3=80=81mysqlbinlog=E3=80=81mysqldecompress=E7=AD=89?= =?UTF-8?q?=E5=AE=A2=E6=88=B7=E7=AB=AF=E5=B7=A5=E5=85=B7=20*=20=E4=BF=AE?= =?UTF-8?q?=E5=A4=8DMAXPERF=E9=80=BB=E8=BE=91=E5=88=A4=E6=96=AD=E9=97=AE?= =?UTF-8?q?=E9=A2=98=EF=BC=8C=E4=BF=AE=E5=A4=8DCPU=E6=A0=B8=E6=95=B0?= =?UTF-8?q?=E5=88=A4=E6=96=AD=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GreatSQL/CHANGELOG.md | 6 +++++ GreatSQL/Dockerfile | 47 ++++++++++++++++-------------------- GreatSQL/README.md | 6 ++--- GreatSQL/greatsql-init.sh | 2 +- GreatSQL/greatsql-shrink.sh | 48 +++++++++++++++++++++++++++---------- 5 files changed, 67 insertions(+), 42 deletions(-) diff --git a/GreatSQL/CHANGELOG.md b/GreatSQL/CHANGELOG.md index 8201167..5b16adc 100644 --- a/GreatSQL/CHANGELOG.md +++ b/GreatSQL/CHANGELOG.md @@ -1,5 +1,11 @@ # 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`)说明建议。 diff --git a/GreatSQL/Dockerfile b/GreatSQL/Dockerfile index 6ff10aa..be15722 100644 --- a/GreatSQL/Dockerfile +++ b/GreatSQL/Dockerfile @@ -1,31 +1,26 @@ -#FROM oraclelinux:8-slim -#FROM ccr.ccs.tencentyun.com/greatsql/oraclelinux:8-slim -FROM registry.cn-beijing.aliyuncs.com/greatsql/oraclelinux:8-slim +FROM container-registry.oracle.com/os/oraclelinux:9-slim LABEL maintainer="greatsql.cn" \ email="greatsql@greatdb.com" \ forum="https://greatsql.cn/forum.php" \ gitee="https://gitee.com/GreatSQL/GreatSQL-Docker" -ENV LANG en_US.utf8 -ARG TARGETARCH \ -MYSQL_DATA_DIR=/data/GreatSQL \ -MYSQL_USER=mysql \ -MYSQL_UID_GID=3306 \ -MYSQL_EXTRACT_DIR=/usr/local \ +ARG TARGETARCH +ENV LANG=en_US.utf8 \ +GREATSQL_DATA_DIR=/data/GreatSQL \ +GREATSQL_USER=mysql \ +GREATSQL_UID_GID=3306 \ +GREATSQL_EXTRACT_DIR=/usr/local \ TMP_DIR=/tmp \ -MYSQL_PORT=3306 \ +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_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-26" - -ENV GREATSQL_PKG="greatsql-8.0.32-26.1.el8.${TARGETARCH}.rpm-bundle.tar.xz" - -CMD /bin/bash +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" RUN microdnf install --nodocs -y ${DEPS} && \ microdnf update -y && \ @@ -33,22 +28,22 @@ curl -o ${TMP_DIR}/${GREATSQL_SHRINK} ${GREATSQL_DOCKER_DOWNLOAD_URL}/${GREATSQL curl -o ${TMP_DIR}/${GREATSQL_TEST} ${GREATSQL_DOCKER_DOWNLOAD_URL}/${GREATSQL_TEST} && \ curl -o /${GREATSQL_INIT} ${GREATSQL_DOCKER_DOWNLOAD_URL}/${GREATSQL_INIT} && \ curl -o /etc/${GREATSQL_CNF} ${GREATSQL_DOCKER_DOWNLOAD_URL}/${GREATSQL_CNF} && \ -/usr/sbin/groupadd -g ${MYSQL_UID_GID} ${MYSQL_USER} && \ -/usr/sbin/useradd -u ${MYSQL_UID_GID} -r -g ${MYSQL_UID_GID} -s /sbin/nologin ${MYSQL_USER} && \ -curl -o ${TMP_DIR}/greatsql.tar.xz ${GREATSQL_DOWNLOAD_URL}/${GREATSQL_PKG} && \ -tar xf ${TMP_DIR}/greatsql.tar.xz -C ${TMP_DIR} && \ -cd ${TMP_DIR} && \ -rpm -ivh --nodeps greatsql-client*rpm greatsql-shared*rpm greatsql-server*rpm greatsql-icu-data-files*rpm && \ -/bin/bash ${TMP_DIR}/${GREATSQL_SHRINK} && \ -mkdir -p ${MYSQL_DATA_DIR} && \ -chown -R ${MYSQL_USER}:${MYSQL_USER} ${MYSQL_DATA_DIR} && \ +/usr/sbin/groupadd -g ${GREATSQL_UID_GID} ${GREATSQL_USER} && \ +/usr/sbin/useradd -u ${GREATSQL_UID_GID} -r -g ${GREATSQL_UID_GID} -s /sbin/nologin ${GREATSQL_USER} && \ +curl -o ${TMP_DIR}/${GREATSQL_PKG}.tar.xz ${GREATSQL_DOWNLOAD_URL}/${GREATSQL_PKG}.tar.xz && \ +tar xf ${TMP_DIR}/${GREATSQL_PKG}.tar.xz -C ${GREATSQL_EXTRACT_DIR} && \ +ln -s ${GREATSQL_EXTRACT_DIR}/GreatSQL-* ${GREATSQL_EXTRACT_DIR}/GreatSQL && \ +ln -s ${GREATSQL_EXTRACT_DIR}/GreatSQL/bin/* /usr/bin/ && \ +/bin/bash ${TMP_DIR}/${GREATSQL_SHRINK} ; \ +mkdir -p ${GREATSQL_DATA_DIR} && \ +chown -R ${GREATSQL_USER}:${GREATSQL_USER} ${GREATSQL_DATA_DIR} && \ chmod -R ug+rwX /etc/my.cnf && \ chmod +x /${GREATSQL_INIT} && \ microdnf clean all && \ -rm -f ${TMP_DIR}/greatsql*xz ${TMP_DIR}/greatsql*rpm ; \ +rm -f ${TMP_DIR}/*xz && \ rm -fr /usr/share/doc /usr/share/man /usr/share/misc ENTRYPOINT ["/greatsql-init.sh"] -EXPOSE ${MYSQL_PORT} ${MYSQL_PORT}0 ${MYSQL_PORT}1 +EXPOSE ${GREATSQL_PORT} ${GREATSQL_PORT}0 ${GREATSQL_PORT}1 CMD ["mysqld"] diff --git a/GreatSQL/README.md b/GreatSQL/README.md index 1e9da0c..944d266 100644 --- a/GreatSQL/README.md +++ b/GreatSQL/README.md @@ -11,12 +11,12 @@ - 维护者: GreatSQL(greatsql@greatdb.com) - 联系我们:greatsql@greatdb.com - 最新版本:GreatSQL 8.0.32-26 -- 最后更新时间:2024-08-13 +- 最后更新时间:2024-12-30 ## 支持哪些tag -- [latest](https://hub.docker.com/layers/greatsql/greatsql/latest/images/sha256-126b1fd7a1305273b8fcbe7cf7d73fb525217c7fd42bd3da9debe6afe4aecedb) -- [8.0.32-26](https://hub.docker.com/layers/greatsql/greatsql/8.0.32-26/images/sha256-126b1fd7a1305273b8fcbe7cf7d73fb525217c7fd42bd3da9debe6afe4aecedb) +- [latest](https://hub.docker.com/layers/greatsql/greatsql/latest/images/sha256-1f735f42aecdf4ee5c65699b228ce520a79f4d2e6b4fbaaddb607babcf604f0d) +- [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) diff --git a/GreatSQL/greatsql-init.sh b/GreatSQL/greatsql-init.sh index b6cf5b7..cac93a3 100755 --- a/GreatSQL/greatsql-init.sh +++ b/GreatSQL/greatsql-init.sh @@ -341,7 +341,7 @@ fi file_env 'MAXPERF' mem=`free -m|grep Mem|awk '{print $2}'` -cpu=`lscpu |grep '^CPU(s)'|awk '{print $2}'` +cpu=`lscpu |grep '^CPU(s)'|grep -v scaling|awk '{print $2}'` ibp_maxperf=`expr ${mem} / 4 \* 3` rapid_mem_maxperf=`expr ${ibp_maxperf} / 2` rapid_thd_maxperf=`expr ${cpu} - 2` diff --git a/GreatSQL/greatsql-shrink.sh b/GreatSQL/greatsql-shrink.sh index 30181da..a910d19 100755 --- a/GreatSQL/greatsql-shrink.sh +++ b/GreatSQL/greatsql-shrink.sh @@ -1,16 +1,40 @@ #!/bin/sh -basedir=/ -rm -fr $basedir/usr/include -rm -f $basedir/usr/sbin/mysqld-debug +basedir=/usr/local/GreatSQL -cd $basedir/usr/bin -rm -fr comp_err ibd2sdi innochecksum ldb lz4_decompress myisamchk myisam_ftdump myisamlog myisampack mysqlcheck mysql_client_test mysqld_multi mysqld_safe mysqldumpslow mysqlimport mysql_keyring_encryption_test mysql_ldb mysql_migrate_keyring mysql_secure_installation mysqlslap mysqltest mysqltest_safe_process mysql_upgrade mysqlxtest ps-admin ps_mysqld_helper sst_dump zlib_decompress mysqlpump mysql_config mysql_config_editor perror -rm -fr mysqldecrypt zstd_decompress mysqlshow mysqladmin mysqldump mysqlbinlog +rm -fr $basedir/include -cd $basedir/usr/lib64/mysql -rm -rf libHotBackup.so libmysqlservices.a libperconaserverclient.* libcoredumper.a libnspr4.so private/libnspr4.so libnss3.so private/libnss3.so libnssutil3.so private/libnssutil3.so libplc4.so private/libplc4.so libplds4.so private/libplds4.so libsmime3.so private/libsmime3.so libssl3.so private/libssl3.so mecab/ -rm -fr libmysqlclient.so.21 libmysqlclient.so.21.2.32 +cd $basedir/bin +rm -fr comp_err ibd2sdi innochecksum ldb lz4_decompress myisamchk myisam_ftdump myisamlog myisampack mysqlcheck \ + mysql_client_test mysqld_multi mysqld_safe mysqldumpslow mysqlimport mysql_keyring_encryption_test mysql_ldb \ + mysql_migrate_keyring mysql_secure_installation mysqlslap mysqltest mysqltest_safe_process mysql_upgrade \ + mysqlxtest ps-admin ps_mysqld_helper sst_dump zlib_decompress mysql_config mysql_config_editor perror \ + mysqldecrypt zstd_decompress mysqld-debug mysqladmin mysqlshow mysqlpump mysqlrouter mysqlrouter_keyring \ + mysqlrouter_passwd mysqlrouter_plugin_info mysqld_pre_systemd -cd $basedir/usr/lib64/mysql/plugin -rm -fr debug/ auth_pam_compat.so auth_pam.so component_keyring_file.so component_mysqlx_global_reset.so component_pfs_example_component_population.so component_pfs_example.so component_test_backup_lock_service.so component_test_mysql_current_thread_reader.so component_test_mysql_runtime_error.so component_test_pfs_notification.so component_test_pfs_resource_group.so component_test_status_var_service_int.so component_test_status_var_service_reg_only.so component_test_status_var_service.so component_test_status_var_service_str.so component_test_status_var_service_unreg_only.so component_test_string_service_charset.so component_test_string_service_long.so component_test_string_service.so component_test_system_variable_source.so component_test_sys_var_service_int.so component_test_sys_var_service_same.so component_test_sys_var_service.so component_test_sys_var_service_str.so component_test_udf_registration.so component_udf_reg_3_func.so component_udf_reg_avg_func.so component_udf_reg_int_func.so component_udf_reg_int_same_func.so component_udf_reg_only_3_func.so component_udf_reg_real_func.so component_udf_unreg_3_func.so component_udf_unreg_int_func.so component_udf_unreg_real_func.so daemon_example.ini dialog.so ha_rocksdb.so innodb_engine.so libdaemon_example.so libmemcached.so libpluginmecab.so libtest_framework.so libtest_services.so libtest_services_threaded.so libtest_session_attach.so libtest_session_detach.so libtest_session_info.so libtest_session_in_thd.so libtest_sql_2_sessions.so libtest_sql_all_col_types.so libtest_sql_cmds_1.so libtest_sql_commit.so libtest_sql_complex.so libtest_sql_errors.so libtest_sql_lock.so libtest_sql_processlist.so libtest_sql_replication.so libtest_sql_reset_connection.so libtest_sql_shutdown.so libtest_sql_sleep_is_connected.so libtest_sql_sqlmode.so libtest_sql_stmt.so libtest_sql_stored_procedures_functions.so libtest_sql_views_triggers.so libtest_x_sessions_deinit.so libtest_x_sessions_init.so pfs_example_plugin_employee.so procfs.so qa_auth_client.so qa_auth_interface.so qa_auth_server.so replication_observers_example_plugin.so test_security_context.so test_services_plugin_registry.so test_udf_services.so tokudb_backup.so udf_example.so semisync_master.so semisync_replica.so semisync_slave.so semisync_source.so test_* *test* -rm -fr authentication_*so component_keyring_*so +cd $basedir/lib +rm -rf libHotBackup.so libmysqlservices.a libperconaserverclient.* libcoredumper.a libnspr4.so \ + libmysqlclient.so.21 libmysqlclient.so.21.2.32 libplc4.so libssl3.so libplds4.so libsmime3.so libnss3.so \ + private/libnspr4.so private/libnss3.so libnssutil3.so private/libnssutil3.so private/libplc4.so \ + private/libplds4.so private/libsmime3.so private/libssl3.so mecab/ mysqlrouter + +cd $basedir/lib/plugin +rm -fr debug/ auth_pam_compat.so auth_pam.so component_keyring_file.so component_mysqlx_global_reset.so \ + component_pfs_example_component_population.so component_pfs_example.so component_test_backup_lock_service.so \ + component_test_mysql_current_thread_reader.so component_test_mysql_runtime_error.so component_test_pfs_notification.so \ + component_test_pfs_resource_group.so component_test_status_var_service_int.so component_test_status_var_service_reg_only.so \ + component_test_status_var_service.so component_test_status_var_service_str.so component_test_status_var_service_unreg_only.so \ + component_test_string_service_charset.so component_test_string_service_long.so component_test_string_service.so \ + component_test_system_variable_source.so component_test_sys_var_service_int.so component_test_sys_var_service_same.so \ + component_test_sys_var_service.so component_test_sys_var_service_str.so component_test_udf_registration.so \ + component_udf_reg_3_func.so component_udf_reg_avg_func.so component_udf_reg_int_func.so component_udf_reg_int_same_func.so \ + component_udf_reg_only_3_func.so component_udf_reg_real_func.so component_udf_unreg_3_func.so component_udf_unreg_int_func.so \ + component_udf_unreg_real_func.so daemon_example.ini dialog.so ha_rocksdb.so innodb_engine.so libdaemon_example.so libmemcached.so \ + libpluginmecab.so libtest_framework.so libtest_services.so libtest_services_threaded.so libtest_session_attach.so \ + libtest_session_detach.so libtest_session_info.so libtest_session_in_thd.so libtest_sql_2_sessions.so libtest_sql_all_col_types.so \ + libtest_sql_cmds_1.so libtest_sql_commit.so libtest_sql_complex.so libtest_sql_errors.so libtest_sql_lock.so libtest_sql_processlist.so \ + libtest_sql_replication.so libtest_sql_reset_connection.so libtest_sql_shutdown.so libtest_sql_sleep_is_connected.so libtest_sql_sqlmode.so \ + libtest_sql_stmt.so libtest_sql_stored_procedures_functions.so libtest_sql_views_triggers.so libtest_x_sessions_deinit.so \ + libtest_x_sessions_init.so pfs_example_plugin_employee.so procfs.so qa_auth_client.so qa_auth_interface.so qa_auth_server.so \ + replication_observers_example_plugin.so test_security_context.so test_services_plugin_registry.so test_udf_services.so \ + tokudb_backup.so udf_example.so semisync_master.so semisync_replica.so semisync_slave.so semisync_source.so test_* *test* \ + authentication_*so component_keyring_*so From 1eb42a1f33cee72b38b284b4492b81ee91e63664 Mon Sep 17 00:00:00 2001 From: Ye Jinrong Date: Mon, 30 Dec 2024 11:23:57 +0800 Subject: [PATCH 39/71] LU --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2fb8570..4955284 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-26 -- 最后更新时间:2024-08-19。 +- 最后更新时间:2024-12-30。 ## 镜像仓库列表 - GreatSQL,构建GreatSQL运行环境的Docker镜像 From c15f510bfae99873b8842805f54a31aff3572e71 Mon Sep 17 00:00:00 2001 From: Ye Jinrong Date: Thu, 2 Jan 2025 17:52:28 +0800 Subject: [PATCH 40/71] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dbasedir=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GreatSQL/my.cnf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/GreatSQL/my.cnf b/GreatSQL/my.cnf index 5080591..11d0e14 100644 --- a/GreatSQL/my.cnf +++ b/GreatSQL/my.cnf @@ -15,7 +15,7 @@ no-auto-rehash user = mysql port = 3306 server_id = MYSQL_SID -basedir = /usr/ +basedir = /usr/local/GreatSQL datadir = /data/GreatSQL socket = /data/GreatSQL/mysql.sock pid-file = mysql.pid From ffc05dea31b50dee39211e20b490646ab33ff7b2 Mon Sep 17 00:00:00 2001 From: Ye Jinrong Date: Thu, 2 Jan 2025 17:52:41 +0800 Subject: [PATCH 41/71] LU --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4955284..1b2a120 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-26 -- 最后更新时间:2024-12-30。 +- 最后更新时间:2025-01-02。 ## 镜像仓库列表 - GreatSQL,构建GreatSQL运行环境的Docker镜像 From 8aff141e1512b888c2b11d398a59d34638bc7fd0 Mon Sep 17 00:00:00 2001 From: Ye Jinrong Date: Thu, 6 Mar 2025 16:09:00 +0800 Subject: [PATCH 42/71] 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 43/71] 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 44/71] 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 45/71] =?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 46/71] =?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 47/71] =?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 48/71] 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 49/71] =?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 50/71] =?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 51/71] =?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 52/71] =?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 53/71] =?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 54/71] 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 55/71] =?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 56/71] =?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 57/71] =?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 58/71] =?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 59/71] =?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 60/71] =?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 61/71] =?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 62/71] =?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 63/71] =?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 64/71] =?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 65/71] =?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 66/71] =?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 67/71] =?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 68/71] =?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 69/71] =?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 70/71] =?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 71/71] =?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