MacOS下编译percona及部分函数的运算差异

Posted 老叶茶馆_

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MacOS下编译percona及部分函数的运算差异相关的知识,希望对你有一定的参考价值。

本文首发于GreatSQL社区

原创内容未经授权不得随意使用,转载请联系小编并注明来源

  • 1. 准备

  • 2. 编译环境部署

    • 2.1 首先先安装Cmake

    • 2.2 也可以使用软件包管理工具brew进行安装

    • 2.3 其他软件包安装类同,注意安装包版本

    • 2.4 所有软件包安装完成后解压percona源码到自己目录

  • 3. 可能出现的问题

  • 4. 目前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/refman/8.0/en/source-installation-prerequisites.html)

  • percona下载(https://github.com/percona/percona-server)

  • boost下载(https://www.boost.org/users/download/)

  • cmake下载(https://cmake.org/download/)

目前已在MacOS系统10.14.610.1511.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部分函数在Mac系统与Ubuntu、CentOS上的差异

由于系统原因目前percona一些函数运算结果与其他系统存在一定的差异例如:以整数123456求正弦值等为例

函数MacOS运算结果Ubuntu、Centos运算结果
SIN(123456) 求正弦值0.60192765476249740.6019276547624973
TAN(123456) 求正切值0.7537751984442330.7537751984442329
COT (123456) 求余切值1.32665548304582951.3266554830458297

Enjoy GreatSQL :)


《实战MGR》视频课程

戳此小程序即可直达B站

或复制链接在浏览器中打开

  • https://space.bilibili.com/1363850082


文章推荐:


点击文末“阅读原文”直达老叶专栏

以上是关于MacOS下编译percona及部分函数的运算差异的主要内容,如果未能解决你的问题,请参考以下文章

AssertionError:Torch 未在启用 CUDA 的情况下编译

Linux下编译CEF源码及交叉编译

Windows下编译Python2.7源码

windows下编译及使用libevent

[转]windows下编译及使用libevent

02Mac下编译java代码