您的当前位置:首页 >IT科技类资讯 >MySQL Shell 8.0.32 for GreatSQL编译二进制包 正文
时间:2025-11-04 20:59:29 来源:网络整理编辑:IT科技类资讯
构建MySQL Shell 8.0.32 for GreatSQL0. 写在前面最近再次编译MySQL Shell二进制包时,发现了一些新问题,因此重新整理更新本文档。1. 几处新问题这次编译MySQ
构建MySQL Shell 8.0.32 for GreatSQL
最近再次编译MySQL Shell二进制包时,译进发现了一些新问题,制包因此重新整理更新本文档。译进

这次编译MySQL Shell发现几个新问题,制包下面一一列举。译进
MySQL Shell要求配套的制包antlr4版本必须是4.10.0,配套的译进protobuf必须是3.19.4,其他版本都不行。制包部分包需要科学上网才能下载,译进有些环境下就没那么方便了,制包因此我都下载到本地并打包好了。译进在编译antlr4时还要再下载googletest依赖包,制包这个下载地址也是译进要科学上网的,在内网环境中会失败,制包因此我antlr4源码包微调了下,译进把googletest依赖包也打进去了,也可以通过微调代码略过该步骤,这样就可以避免编译问题。针对这些情况,为了方便社区用户,我直接将整个二进制包编译工作打包成Docker镜像,有需要的b2b供应网直接拉取镜像创建容器,只需耐心等上几分钟即可得到MySQL Shell for GreatSQL二进制包了。
使用方法很简单,类似下面这样即可:
复制# 前面略过Docker的安装过程 # 直接拉取镜像并创建新容器 $ docker run -itd --hostname greatsqlsh --name greatsqlsh greatsql/greatsql_shell_build bash # 查看容器日志,大概要等几分钟才能编译完成,取决于服务器性能 # 如果看到类似下面的结果,就表明二进制包已编译完成 $ docker logs greatsqlsh | tail 1. extracting tarballs 2. compiling antlr4 3. compiling patchelf 4. compiling rpcsvc-proto 5. compiling protobuf 6. compiling greatsql shell /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) 7. MySQL Shell 8.0.32-25 for GreatSQL build completed! TARBALL is: -rw-r--r-- 1 root root 20343832 Jan 20 21:41 greatsql-shell-8.0.32-25-centos-glibc2.28-x86_64.tar.xz1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.接下来回退到宿主机,将容器中的二进制包拷贝出来
复制$ docker cp greatsqlsh:/opt/greatsql-shell-8.0.32-25-centos-glibc2.28-x86_64.tar.xz /usr/local/1.然后解压缩,就可以在宿主机环境下使用了。
说完用Docker容器构建二进制包的方法,再说下手动编译全过程,有兴趣的同学也可以跟着自己动手做一遍,增加体感。
参考编译环境要求参考 GreatSQL-Shell Dockerfile ,构建好一个Docker镜像环境,基本上照着做就行,这里不赘述。
先下载准备好下列几个源码包:
antlr4-4.10.0.tar.gz, https://github.com/antlr/antlr4/archive/refs/tags/4.10.tar.gzboost_1_77_0.tar.gz, https://boostorg.jfrog.io/artifactory/main/release/1.77.0/source/boost_1_77_0.tar.gzmysql-8.0.32.tar.gz, https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.32.tar.gzmysql-shell-8.0.32-src.tar.gz, https://downloads.mysql.com/archives/get/p/43/file/mysql-shell-8.0.32-src.tar.gzpatchelf-0.14.5.tar.gz, https://github.com/NixOS/patchelf/releases/download/0.14.5/patchelf-0.14.5.tar.gzprotobuf-all-3.19.4.tar.gz, https://github.com/protocolbuffers/protobuf/releases/download/v3.19.4/protobuf-all-3.19.4.tar.gzrpcsvc-proto-1.4.tar.gz,https://github.com/thkukuk/rpcsvc-proto/releases/download/v1.4/rpcsvc-proto-1.4.tar.gz下载完后都放在 /opt/ 目录下,并解压缩。
打开链接:https://gitee.com/GreatSQL/GreatSQL-Shell-Docker/blob/master/mysqlsh-for-greatsql-8.0.32.patch,下载GreatSQL补丁包文件 mysqlsh-for-greatsql-8.0.32.patch。
为了让MySQL Shell支持GreatSQL仲裁节点(ARBITRATOR)特性,网站模板需要打上补丁包:
复制$ cd /opt/mysql-shell-8.0.32-src $ patch -p1 -f < /opt/mysqlsh-for-greatsql-8.0.32.patch patching file mysqlshdk/libs/mysql/group_replication.cc patching file mysqlshdk/libs/mysql/group_replication.h1.2.3.4.5.编译antlr4:
复制$ cd /opt/antlr4-4.10/runtime/Cpp/ $ mkdir bld && cd bld $ cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/antlr4 && make -j16 && make -j16 install1.2.3.如果你的网络环境无法直接从github上下载二进制包,则先自行下载二进制包 https://github.com/google/googletest/archive/e2239ee6043f73722e7aa812a459f54a28552929.zip,并放到antlr4代码包中相应位置,再修改antlr4代码,略过下载步骤,详见下面的做法:
复制$ cd /opt/antlr4-4.10/runtime/Cpp/ # 新建目录,并将下载的googletest压缩包放在该目录下 $ mkdir -p bld/_deps/googletest-subbuild/googletest-populate-prefix/src/ $ mv PATH/e2239ee6043f73722e7aa812a459f54a28552929.zip bld/_deps/googletest-subbuild/googletest-populate-prefix/src/ # 修改下面文件,注释掉第一行 $ vim runtime/CMakeLists.txt #option(ANTLR_BUILD_CPP_TESTS "Build C++ tests." ON)1.2.3.4.5.6.7.8.之后就可以用上面的方法进行编译,而不会在下载二进制包环节卡住不动。
2.4.2 patchelf-0.14.5 复制$ cd /opt/patchelf-0.14.5 $ ./bootstrap.sh && ./configure && make -j16 && make -j16 install1.2. 2.4.3 protobuf-3.19.4 复制$ cd /opt/protobuf-3.19.4 $ ./configure && make -j16 && make -j16 install1.2. 2.4.4 rpcsvc-proto-1.4 复制$ cd /opt/rpcsvc-proto-1.4 $ ./configure && make -j16 && make -j16 install1.2.在MySQL 8.0.32源码目录中,编译生成MySQL客户端相关依赖库,这是编译MySQL Shell之前要先做的事:
复制$ cd /opt/mysql-8.0.32 $ mkdir bld && cd bld $ cmake .. -DBOOST_INCLUDE_DIR=/opt/boost_1_77_0 \ -DLOCAL_BOOST_DIR=/opt/boost_1_77_0 \ -DWITH_SSL=system && \ cmake --build . --target mysqlclient -- -j16; \ cmake --build . --target mysqlxclient -- -j161.2.3.4.5.6.7. 3.2 编译MySQL Shell 8.0.32 for GreatSQL编译完MySQL 8.0.32后,切换到MySQL Shell源码目录下,准备继续编译:
复制$ cd /opt/mysql-shell-8.0.32-src/ $ mkdir bld && cd bld $ cmake .. \ -DCMAKE_INSTALL_PREFIX=/usr/local/greatsql-shell-8.0.32-25-Linux-glibc2.28-x86_64 \ -DMYSQL_SOURCE_DIR=/opt/mysql-8.0.32 \ -DMYSQL_BUILD_DIR=/opt/mysql-8.0.32/bld/ \ -DHAVE_PYTHON=1 \ -DWITH_PROTOBUF=bundled \ -DBUILD_SOURCE_PACKAGE=0 \ -DBUNDLED_ANTLR_DIR=/usr/local/antlr4/ \ -DPYTHON_LIBRARIES=/usr/lib64/python3.8 -DPYTHON_INCLUDE_DIRS=/usr/include/python3.8/ \ && make && make install1.2.3.4.5.6.7.8.9.10.11.12.编译完成后,会把二进制文件安装到 /usr/local/greatsql-shell-8.0.32-25-Linux-glibc2.28-x86_64 目录下。
3.3 运行测试运行 mysqlsh测试前,还要先将libprotobuf.so动态库文件拷贝放到MySQL Shell目录下,再运行测试:
复制$ cp /usr/local/lib/libprotobuf.so.30 /usr/local/greatsql-shell-8.0.32-25-Linux-glibc2.28-x86_64/lib/mysqlsh/ $ /usr/local/greatsql-shell-8.0.32-25-Linux-glibc2.28-x86_64/bin/mysqlsh MySQL Shell 8.0.32 ... Type \help or \? for help; \quit to exit. MySQL Py > \q Bye!1.2.3.4.5.6.7.好了,开始感受GreatSQL 8.0.32-25新版本特性,以及MGR仲裁节点的魅力吧 O(∩_∩)O哈哈~
IT技术网深度U启大师使用教程(轻松提升电脑性能,解决系统卡顿问题)2025-11-04 20:53
荣耀7i的做工质量如何?(一探荣耀7i的工艺与细节)2025-11-04 20:50
用电脑手绘创作动漫人物,打造绚丽的虚拟世界2025-11-04 20:44
金山文档表格电脑使用教程(轻松掌握金山文档表格的使用技巧)2025-11-04 20:29
GTX6501GD5显卡的性能评测(一款老牌显卡的强势回归)2025-11-04 19:57
探究TCL空气净化器的效果及特点(科技智能、高效净化,TCL空气净化器的综合评测)2025-11-04 19:43
三星云盘(为您打造安全可靠的数据存储空间)2025-11-04 19:03
解决电脑DNS配置错误无法上网的方法(探索常见的DNS配置错误以及解决方法)2025-11-04 19:03
全面指南(简单易懂的制作教程,让您轻松驾驭U盘系统驱动盘)2025-11-04 18:39
洗衣机电脑板时间错误的原因及解决方法(深入分析洗衣机电脑板时间错误的根源,提供解决方案)2025-11-04 18:28
用电脑设计明信片教程(轻松学会用电脑设计个性化明信片)2025-11-04 20:53
高效电脑桌面布置教程(提高工作效率的电脑桌面优化技巧)2025-11-04 20:46
荣耀9高配如何满足用户需求(领先配置带来超凡体验,荣耀9高配值得拥有)2025-11-04 20:28
小米手环跑步体验(小米手环跑步功能详解,助力你迈向健康生活)2025-11-04 20:17
将电脑内存条改成U盘的详细教程(简单快速地将电脑内存条改装成U盘的方法)2025-11-04 20:01
使用鸿基电脑U盘轻松装机(一步步教你完成自己的电脑组装)2025-11-04 19:41
华为X6移动定制版——全新升级的移动体验(华为X6移动定制版)2025-11-04 18:57
探索潍坊华创机器人的技术与应用(创新、智能、领先——华创机器人在潍坊的发展与应用)2025-11-04 18:41
以赛睿ApexM400键盘的性能如何?(一款适合游戏玩家的高性能机械键盘)2025-11-04 18:28
小米小照相机——记录美好瞬间的便携利器(小巧便携,卓越拍摄体验,拍照从未如此轻松愉快)2025-11-04 18:15