乐趣区

关于mysql:Macos系统编译percona及部分函数在Macos系统上运算差异

欢送来到 GreatSQL 社区分享的 MySQL 技术文章,如有疑难或想学习的内容,能够在下方评论区留言,看到后会进行解答

本文起源:原创投稿

  • GreatSQL 社区原创内容未经受权不得随便应用,转载请分割小编并注明起源。
  1. 筹备
  2. 编译环境部署

2.1 首先先装置 Cmake

2.2 也能够应用软件包管理工具 brew 进行装置

2.3 其余软件包装置类同,留神安装包版本

2.4 所有软件包装置实现后解压 percona 源码到本人目录

  1. 可能呈现的问题
  2. 目前 percona 局部函数在 Macos 零碎与 ubuntu、centos 上的差别

1. 筹备

编译环境所需软件包,顺次装置:

CMake3.21.2、OpenSSL1.1、ncurses、bison3.5.1、m4、boost1.73、flex 2.6.4

以上软件包能够自行到对应官网下载安装,下载地址参考如下

  • MySQL 官网参考阐明(https://dev.mysql.com/doc/ref…)
  • percona 下载(https://github.com/percona/pe…)
  • boost 下载(https://www.boost.org/users/d…)
  • cmake 下载 (https://cmake.org/download/)
    目前已在 Macos 零碎 10.14.6、10.15、11.6 尝试编译通过,雷同硬件配置目前 10.14.6 零碎编译速度最快

2. 编译环境部署

2.1 首先先装置 Cmake

双击 cmake 安装包进行装置,装置实现后执行命令查看 cmake 版本

$cmake --version

2.2 也能够应用软件包管理工具 brew 进行装置

以下具体以 brew 形式装置为样例

  • 1)首先装置软件包治理⼯具
brew /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"
  • 2)应用以下命令先查看须要装置的版本是否存在,例如:
$ brew search openssl

找到对应版本 1.1 后执行命令进行装置

$ brew install openssl@1.1

装置实现执行以下命令后依据提醒设置环境变量

$ brew link openssl --force

编辑⽤户根⽬录.profile 文件 (Macos 零碎版本不同文件名可能存在不同,依据提醒操作相应文件) 加⼊环境变量,增加该文件如:

依据装置完提醒加⼊

export PATH="/usr/local/opt/openssl@1.1/bin:$PATH"
export LDFLAGS="-L/usr/local/opt/openssl@1.1/lib"
export CPPFLAGS="-I/usr/local/opt/openssl@1.1/include"

2.3 其余软件包装置类同,留神安装包版本

2.4 所有软件包装置实现后解压 percona 源码到本人目录

进入 percona 源码目录,依据本人设置命令中相应资源目录:

  • -DWITH_ROCKSDB:boost 压缩包目录
  • -DCMAKE_INSTALL_PREFIX:编译实现后默认装置目录
  • 其余参数可依据须要自行添加和批改,命令参考如下:
$ cmake -DCMAKE_BUILD_TYPE=DEBUG -DWITH_DEBUG=true -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost/ -DCMAKE_INSTALL_PREFIX=/usr/local/percona/ -DWITH_ZLIB=bundled -DWITH_LIBEVENT=bundled 

执行胜利后再执行编译并装置,其中 -j10 示意 10 个编译命令并行编译能够进步编译速度,具体并行编译命令应用个数能够依据本身电脑配置状况设定

$ make -j10 && make install

编译并装置实现后配置 my.cnf 文件启动数据库

3. 可能呈现的问题

  • 1)编译过程中如果呈现提醒 xcode 装置,依据提醒装置即可
  • 2)因为 Macos 零碎默认应用本人的 ssl 库,在 cmake 编译过程中如果呈现提醒找不到 ssl 库谬误,此时能够在 cmake 命令后退出参数指定 openssl 目录
    -DWITH_SSL=’/usr/local/opt/openssl@1.1′
  • 3)呈现谬误后,再次执行 cmake 命令前先清理 CMakeCache.txt 文件

4. 目前 percona 局部函数在 Macos 零碎与 ubuntu、centos 上的差别

因为零碎起因目前 percona 一些函数运算后果与其余零碎存在肯定的差别例如:以整数 123456 求正弦值等为例

Enjoy GreatSQL :)

文章举荐:

GreatSQL MGR FAQ
https://mp.weixin.qq.com/s/J6…

万答 #12,MGR 整个集群挂掉后,如何能力主动选主,不必手动干涉
https://mp.weixin.qq.com/s/07…

『2021 数据技术嘉年华·ON LINE』:《MySQL 高可用架构演进及实际》
https://mp.weixin.qq.com/s/u7…

一条 sql 语句慢在哪之抓包剖析
https://mp.weixin.qq.com/s/AY…

万答 #15,都有哪些状况可能导致 MGR 服务无奈启动
https://mp.weixin.qq.com/s/in…

技术分享 | 为什么 MGR 一致性模式不举荐 AFTER
https://mp.weixin.qq.com/s/rN…

对于 GreatSQL

GreatSQL 是由万里数据库保护的 MySQL 分支,专一于晋升 MGR 可靠性及性能,反对 InnoDB 并行查问个性,是实用于金融级利用的 MySQL 分支版本。

Gitee:
https://gitee.com/GreatSQL/Gr…

GitHub:
https://github.com/GreatSQL/G…

Bilibili:
https://space.bilibili.com/13…

微信 &QQ 群:
可搜寻增加 GreatSQL 社区助手微信好友,发送验证信息“加群”退出 GreatSQL/MGR 交换微信群

QQ 群:533341697
微信小助手:wanlidbc

本文由博客一文多发平台 OpenWrite 公布!

退出移动版