MySQL Shell 8.0.32 for GreatSQL编译安装

这篇具有很好参考价值的文章主要介绍了MySQL Shell 8.0.32 for GreatSQL编译安装。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  • 0.写在前面

  • 1.准备工作

  • 1.1 准备Docker环境

  • 1.2 下载源码包

  • 1.3 修改MySQL Shell源码包

  • 1.4 编译相关软件包

  • 2.准备编译MySQL Shell

  • 2.1 编译MySQL 8.0.32

  • 2.2 编译MySQL Shell 8.0.32

  • 2.3 运行测试

  • 3.写在最后

  • 延伸阅读

升级MySQL Shell for GreatSQL版本

0. 写在前面

GreatSQL 8.0.32-24已发布,配套的MySQL Shell也需要跟着升级一波,MySQL Shell版本从8.0.25升级到8.0.32后,也引入了一些不错的新特性。

下面正式开始MySQL Shell编译工作。

1. 准备工作

1.1 准备Docker环境

参考编译环境要求 greatsql_docker_build(https://gitee.com/GreatSQL/GreatSQL-Doc/blob/master/greatsql_shell_docker_build/Dockerfile) ,构建好一个Docker镜像环境,基本上照着做就行,这里不赘述。

1.2 下载源码包

先下载准备好下列几个源码包:

  • antlr4-cpp-runtime-4.10-source.zip, https://github.com/antlr/website-antlr4/blob/gh-pages/download/antlr4-cpp-runtime-4.10-source.zip
  • boost_1_77_0.tar.gz, https://boostorg.jfrog.io/artifactory/main/release/1.77.0/source/boost_1_77_0.tar.gz
  • mysql-8.0.32.tar.gz, https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.32.tar.gz
  • mysql-shell-8.0.32-src.tar.gz, https://downloads.mysql.com/archives/get/p/43/file/mysql-shell-8.0.32-src.tar.gz
  • patchelf-0.14.5.tar.gz, https://github.com/NixOS/patchelf/releases/download/0.14.5/patchelf-0.14.5.tar.gz
  • protobuf-all-3.19.4.tar.gz, https://github.com/protocolbuffers/protobuf/releases/download/v3.19.4/protobuf-all-3.19.4.tar.gz
  • rpcsvc-proto-1.4.tar.gz, https://github.com/thkukuk/rpcsvc-proto/releases/download/v1.4/rpcsvc-proto-1.4.tar.gz

下载完后都放在 /opt/ 目录下,并解压缩。

1.3 修改MySQL Shell源码包

打开链接:https://gitee.com/GreatSQL/GreatSQL-Doc/blob/master/greatsql_shell_docker_build/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.h

1.4 编译相关软件包

1.43.1 antlr4-4.10

编译antlr4需要依赖 uuid 库,先安装上:

$ yum install -y libuuid libuuid-devel uuid

接着开始编译antlr4:

$ cd /opt/antlr4-4.10/runtime/Cpp/
$ mkdir bld && cd bld
$ cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/antlr4 && make -j16 && make -j16 install

1.4.2 patchelf-0.14.5

$ cd /opt/patchelf-0.14.5
$ ./bootstrap.sh && ./configure && make -j16 && make -j16 install

1.4.3 protobuf-3.19.4

$ cd /opt/protobuf-3.19.4
$ ./configure && make -j16 && make -j16 install

1.4.4 rpcsvc-proto-1.4

$ cd /opt/rpcsvc-proto-1.4
$ ./configure && make -j16 && make -j16 install

2. 准备编译MySQL Shell

2.1 编译MySQL 8.0.32

在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 -- -j16

P.S,在 cmake 后面加上 -- -j16 的作用是多线程并行编译,这样速度更快,不加的话只能单线程编译,速度比较慢。

2.2 编译MySQL Shell 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-24-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/ \
&& make && make install

测试提示错误信息:

CMake Error at /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
  Could NOT find PythonLibs (missing: PYTHON_LIBRARIES PYTHON_INCLUDE_DIRS)
  (Required is at least version "3.8")

这表示需要先安装Python 3.8相关软件包,因为还需要libssh,就一并安装:

$ yum install -y python38 python38-devel python38-libs python38-pyyaml libssh libssh-config libssh-devel 

再次编译,并指定Python 3.8的相关路径:

$ cmake .. \
-DCMAKE_INSTALL_PREFIX=/usr/local/greatsql-shell-8.0.32-24-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 -j16 && make -j16 install

编译完成后,会把二进制文件安装到 /usr/local/greatsql-shell-8.0.32-24-Linux-glibc2.28-x86_64 目录下。

2.3 运行测试

运行 mysqlsh,看是否能直接跑起来:

$ cd /usr/local/greatsql-shell-8.0.32-24-Linux-glibc2.28-x86_64
$ ./bin/mysqlsh
./bin/mysqlsh: error while loading shared libraries: libprotobuf.so.30: cannot open shared object file: No such file or directory

提示无法找到动态库文件 libprotobuf.so.30。实际上这个动态库文件在 /usr/local/lib 目录下,只需将其拷贝一份到MySQL Shell的lib目录下即可:

$ cp /usr/local/lib/libprotobuf.so.30 lib/mysqlsh/
$ ldd bin/mysqlsh | grep libprotobuf.so
        libprotobuf.so.30 => /usr/local/greatsql-shell-8.0.32-24-Linux-glibc2.28-x86_64/bin/../lib/mysqlsh/libprotobuf.so.30 (0x00007f60660a2000)

这次找到依赖库文件了。

运行 mysqlsh,看能否正常使用:

$ ./bin/mysqlsh
MySQL Shell 8.0.32
...
Type '\help' or '\?' for help; '\quit' to exit.
WARNING: Found errors loading plugins, for more details look at the log at: /root/.mysqlsh/mysqlsh.log
 MySQL  Py > \q
Bye!

看到有 WARNING 提示,检查日志文件 /root/.mysqlsh/mysqlsh.log,看到有了类似下面的内容:

ModuleNotFoundError: No module named 'certifi'

只需用pip安装相应模块即可:

$ pip3.8 install --user certifi

好了,开始感受GreatSQL 8.0.32-24新版本特性,以及MGR仲裁节点的魅力吧 O(∩_∩)O哈哈~

3. 写在最后

折腾完这些,是不是感觉还是有点麻烦?没关系,我已经把这些工作都封装到docker镜像中了,包括Dockerfile以及自动编译脚本。下面简单介绍下怎么用。

自行下载MySQL和MySQL Shell,以及boost源码包,上面已经给过下载地址了。

下载完后都放在 /opt/ 目录下,并解压缩。

下载 MySQL Shell for GreatSQL编译辅助包(https://product.greatdb.com/GreatSQL/greatsql-shell-requirement-pkg.tar.xz),解压缩到 /opt/ 目录下。

执行下面命令构建docker镜像:

$ cd /opt/greatsql_shell_docker_build
$ sh ./greatsql-shell-docker-build.sh /opt/mysql-8.0.32/ /opt/mysql-shell-8.0.32-src/ /opt/boost_1_77_0

说明: 上述命令中,脚本后面跟着三个目录参数,分别对应MySQL、MySQL Shell、boost源码全路径。

之后就可以自动完成MySQL Shell for GreatSQL编译docker容器环境,启动并进入该容器:

$ docker images | grep -i greatsql_shell
greatsql_shell_build_env   latest    4db9dcd3c563   About an hour ago   4.1GB

$ docker run -d \
-v /opt/mysql-8.0.32:/opt/mysql-8.0.32 \
-v /opt/mysql-shell-8.0.32-src:/opt/mysql-shell-8.0.32-src \
-v /opt/boost_1_77_0:/opt/boost_1_77_0 \
--name greatsql_shell_build_env greatsql_shell_build_env

$ docker exec -it greatsql_shell_build_env bash

进入容器后,编辑 /opt/greatsql-shell-automake.sh 脚本,确认其中文件目录是否都正确,确认都没问题的话,就可以执行该脚本开始编译源码了。

# 加载环境变量,并切换到高版本gcc编译环境
[root@a5cebc4c0276 opt]# cd /opt
[root@a5cebc4c0276 opt]# source ~/.bash_profile
[root@a5cebc4c0276 opt]# ls -la
total 136
drwxr-xr-x  1 root root    110 Jul 11 08:56 .
drwxr-xr-x  1 root root     62 Jul 11 08:08 ..
drwxr-xr-x  8 root root   4096 Aug  5  2021 boost_1_77_0
-rwxr-xr-x  1 root root    910 Jul 11 08:15 greatsql-shell-automake.sh
drwxr-xr-x 32 7161 31415 65536 Jul 11 08:12 mysql-8.0.32
drwxr-xr-x 18 root root  65536 Jul 11 08:15 mysql-shell-8.0.32-src
drwxr-xr-x  3 root root     28 Jul 11 07:27 rh

# 开始自动编译
[root@a5cebc4c0276 opt]# sh ./greatsql-shell-automake.sh

编译结束后,试着运行 mysqlsh 客户端,确认可用:

/usr/local/greatsql-mysql-shell-8.0.32-centos-glibc2.28-x86_64/bin/mysqlsh
MySQL Shell 8.0.32

Copyright (c) 2016, 2023, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its affiliates.
Other names may be trademarks of their respective owners.

Type '\help' or '\?' for help; '\quit' to exit.
 MySQL  Py >

看起来挺顺利的哈 :)

延伸阅读

  • 利用MySQL Shell安装部署MGR集群
  • mysql-shell for GreatSQL 8.0.27编译安装及使用
  • MySQL Shell Release Notes, https://dev.mysql.com/doc/relnotes/mysql-shell/8.0/en/
  • GreatSQL 8.0.32-24 今日发布

Enjoy GreatSQL 😃

关于 GreatSQL

GreatSQL是适用于金融级应用的国内自主开源数据库,具备高性能、高可靠、高易用性、高安全等多个核心特性,可以作为MySQL或Percona Server的可选替换,用于线上生产环境,且完全免费并兼容MySQL或Percona Server。

相关链接: GreatSQL社区 Gitee GitHub Bilibili

GreatSQL社区:

社区博客有奖征稿详情:https://greatsql.cn/thread-100-1-1.html

MySQL Shell 8.0.32 for GreatSQL编译安装

技术交流群:

微信:扫码添加GreatSQL社区助手微信好友,发送验证信息加群

MySQL Shell 8.0.32 for GreatSQL编译安装文章来源地址https://www.toymoban.com/news/detail-681376.html

到了这里,关于MySQL Shell 8.0.32 for GreatSQL编译安装的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • GreatSQL 8.0.32-25新版本有奖体验!

    2023.12.28——2024.1.15 期间,参与 GreatSQL 8.0.32-25 新版本体验测试活动,只要发现并提交有效错误或 bug、或文档手册问题,即可获得社区周边、社区金币奖励!GreatSQL 期待您的参与~ 新版体验:下载并测试、使用 GreatSQL 8.0.32-25 版本,将您发现的错误或 bug 在➥ https://greatsql.cn/t

    2024年02月04日
    浏览(43)
  • GreatSQL社区与Amazon、Facebook、Tencent共同被MySQL致谢

    在 2023-10-25 MySQL 官方发布的 8.2 版本 Release Notes 中,GreatSQL 社区核心开发者 Richard Dang 和 Hao Lu ,分别收到了来自 MySQL 官方的贡献感谢,与Amazon、Facebook(Meta)、Tencent等一并出现在感谢清单中。详见: MySQL 8.2 Release Notes / Changes in MySQL 8.2.0 (2023-10-25, Innovation Release):https://dev.mysq

    2024年02月05日
    浏览(40)
  • 利用Figlet工具创建酷炫Linux Centos8服务器-登录欢迎界面-SHELL自动化编译安装代码

    因为我们需要生成需要的特定字符,所以需要在当前服务器中安装Figlet,默认没有安装包的,其实如果我们也只要在一台环境中安装,然后需要什么字符只要复制到需要的服务器中,并不需要所有都安装。同样的,我们也可以利用此生成的字符用到脚本运行的开始起头部分,

    2024年02月12日
    浏览(60)
  • MySQL交叉编译ARM32位版本在RV1126上运行

    想要编译个ARM32位的MYSQL,找遍全网没找到满意答案,搞定后写个文章方便后面参考 系统环境与关键位置信息 下载地址: https://boostorg.jfrog.io/artifactory/main/release/1.77.0/source/boost_1_77_0.tar.bz2 提示:版本和目标系统版本一致,这里使用1.1.1f 下载地址: https://www.openssl.org/source/old/1.1

    2024年04月24日
    浏览(32)
  • Mysql 编译安装部署

    Mysql 编译安装部署 环境: 172.20.26.198 (Centos7.6)   源码安装Mysql-5.7 大概步骤如下: 1、上传mysql-5.7.28.tar.gz 、boost_1_59_0.tar 到/usr/src 目录下 2、安装依赖 3、cmake 4、make make install  5、cp support-files/mysql.server my.cnf ,编辑my.cnf文件,添加数据目录及参数 6、创建/data/mysql57目录,并

    2024年01月21日
    浏览(30)
  • docker 编译安装mysql脚本

    在Docker中,你通常不会直接编译安装MySQL,因为Docker提供了预先构建好的MySQL镜像。这些镜像已经包含了编译好的MySQL二进制文件和所需的库文件。不过,如果你有特殊需求,例如想要自己从源代码编译MySQL并打包成Docker镜像,你可以编写一个Dockerfile来实现。 下面是一个简单的

    2024年02月20日
    浏览(27)
  • 【Linux】Centos7 shell实现MySQL5.7 tar 一键安装

    🦄 个人主页——🎐 个人主页 🎐✨🍁 🪁🍁🪁🍁🪁🍁🪁🍁 感谢点赞和关注 ,每天进步一点点!加油!🪁🍁🪁🍁🪁🍁🪁🍁 目录 一、安装下载 二、执行安装 下载地址: https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.44-el7-x86_64.tar.gz 脚本和tar包结构 my.cnf 配置文件 ins

    2024年02月05日
    浏览(46)
  • 【MySQL】CentOS编译安装MySQL5.7实战

    这篇文章是关于MySQL编译安装的,重点掌握的是编译的过程,以及体会排错的痛苦。出错在所难免,最重要的是要有一颗不放弃的心。 本文收录于《数据库入门与精通》专栏, 本专栏写作的过程中,联合了csdn几位DBA大佬,目前正在整理更新目录,力争让大家学到一些真东西,

    2024年02月16日
    浏览(63)
  • GreatSQL登陆Arch Linux:成功的数据库安装之旅

    Arch Linux是一个轻量、灵活、基于x86-64架构的Linux发行版,遵循K.I.S.S.原则。注重代码正确、优雅和极简主义,期待用户能够愿意去理解系统的操作。 Arch Linux将简洁定义为:避免任何不必要的添加、修改和复杂增加。简单来说,archlinux 是一个可以让用户自己动手打造的操作系

    2024年02月05日
    浏览(46)
  • S32 Design Studio for ARM(S32DS)下载和安装

    S32 Design Studio for ARM(下面简称S32DS),是 NXP 官方在 2014 年官方推出的,专门面向 S32K、KEA、MAC57D54H等系列微控制器的集成开发环境。 S32DS是由Eclipse和一些插件集成而来的开发平台,包括Eclipse IDE、GNU编译器集合(GCC)和GNU调试器(GDB)在内的开源软件,操作界面和使用体验上和E

    2024年02月17日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包