Macos系统编译percona及部分函数在Macos系统上运算差异
欢迎来到 GreatSQL社区分享的MySQL技术文章,如有疑问或想学习的内容,可以在下方评论区留言,看到后会进行解答
本文来源:原创投稿
- GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。
准备
编译环境部署
2.1 首先先安装Cmake
2.2 也可以使用软件包管理工具brew进行安装
2.3 其他软件包安装类同,注意安装包版本
2.4 所有软件包安装完成后解压percona源码到自己目录
可能出现的问题
目前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.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/J6wkUpGXw3YkyEUJXiZ9xA
万答#12,MGR整个集群挂掉后,如何才能自动选主,不用手动干预
https://mp.weixin.qq.com/s/07o1poO44zwQIvaJNKEoPA
『2021数据技术嘉年华·ON LINE』:《MySQL高可用架构演进及实践》
https://mp.weixin.qq.com/s/u7k99y6i7riq7ScYs7ySnA
一条sql语句慢在哪之抓包分析
https://mp.weixin.qq.com/s/AYibbzl860D90rOeyjB6IQ
万答#15,都有哪些情况可能导致MGR服务无法启动
https://mp.weixin.qq.com/s/inSGpd0Q_XIl2Mb-VsvNsA
技术分享 | 为什么MGR一致性模式不推荐AFTER
https://mp.weixin.qq.com/s/rNeq479RNsklY1BlfKOsYg
关于 GreatSQL
GreatSQL是由万里数据库维护的MySQL分支,专注于提升MGR可靠性及性能,支持InnoDB并行查询特性,是适用于金融级应用的MySQL分支版本。
Gitee:
https://gitee.com/GreatSQL/GreatSQL
GitHub:
https://github.com/GreatSQL/GreatSQL
Bilibili:
https://space.bilibili.com/1363850082/video
微信&QQ群:
可搜索添加GreatSQL社区助手微信好友,发送验证信息“加群”加入GreatSQL/MGR交流微信群
QQ群:533341697
微信小助手:wanlidbc
本文由博客一文多发平台 OpenWrite 发布!
Macos系统编译percona及部分函数在Macos系统上运算差异的更多相关文章
- 【Java】macOS下编译JDK8
安装mercurial brew install mercurial 下载源码 1234 hg clone http://hg.openjdk.java.net/jdk8/jdk8 java-sour ...
- 在Windows和MacOS下编译Lua
官方说明: http://www.lua.org/manual/5.3/readme.html 在Windows下编译Lua动态链接库的注意事项: 1. 创建一个空的DLL项目: 2. 将src文件夹 ...
- Mac系统编译FFmpeg
转载请标明来源:我不是掌柜的博客 前言 维基百科解释:FFmpeg是一个开源软件,可以运行音频和视频多种格式的录影.转换.流功能,包含了libavcodec – 这是一个用于多个项目中音频和视频的解码 ...
- 迅为iTOP-4418开发板-Android5.1系统编译补充
基于iTOP-4418开发板-Android5.1系统编译补充 5.6 编译-20181225 日期之后的源码 本文档补充介绍 4418 编译网盘目录 “J:\局域网共享_阮\iTOP4418 开发板 ...
- RockChip RK3326 系统编译问题总结
1. 序言 本文主要记录了RK3326平台系统编译过程中遇到的各种问题,并加以解决! 环境: 宿主Linux:Ubuntu 16.04 目标机:RK3326 (64bit) Toolchain:gcc ...
- chromium os系统编译与环境搭建
官方网址:http://www.chromium.org/chromium-os chromium os是google自2009年开启的项目,是一款开源的电脑操作系统,用于开发chromium/chr ...
- RHEL6 最小化系统 编译安装部署zabbix (mysql)
RHEL6 最小化系统 编译安装部署zabbix (mysql)官方说明详细见:https://www.zabbix.com/documentation/4.0/manual/installation ...
- 全志tina v3.0系统编译时的时间错误的解决(全志SDK的维护BUG)
全志tina v3.0系统编译时的时间错误的解决(全志SDK的维护BUG) 2018/6/13 15:52 版本:V1.0 开发板:SC3817R SDK:tina v3.0 1.01原始编译全志r1 ...
- Android系统编译时遇到的几个.mk的疑惑。
在Android4.2的源代码Build/prduct_config.mk里面遇到几个疑惑: # Convert a short name like "sooner" into t ...
随机推荐
- MySQL体系结构与数据类型
layout: post title: "MySQL体系结构与数据类型" date: 2018-02-26 categories: MySQL tags: MySQL 一.MySQ ...
- 128_Power BI父级排名TOPN子级动态展示
博客:www.jiaopengzi.com 焦棚子的文章目录 请点击下载附件 一.背景 前些天在和朋友交流Power BI中有这样一个需求,按照父级排名后,需要显示出父级TOPN的子级明细. 如下&l ...
- 设计并实现加法器类 Adder
学习内容:设计并实现加法器类 Adder 代码示例: package 实验三; import java.util.Scanner; public class Adder { private int n ...
- 基于.NetCore开发博客项目 StarBlog - (8) 分类层级结构展示
系列文章 基于.NetCore开发博客项目 StarBlog - (1) 为什么需要自己写一个博客? 基于.NetCore开发博客项目 StarBlog - (2) 环境准备和创建项目 基于.NetC ...
- ElasticSearch7.3学习(二十八)----聚合实战之电视案例
一.电视案例 1.1 数据准备 创建索引及映射 建立价格.颜色.品牌.售卖日期 字段 PUT /tvs PUT /tvs/_mapping { "properties": { &q ...
- 跨域问题和使用 cookie 的限制
前言 在我的文章 使用 cookie 的身份验证和授权 的最后,讲到了跨域问题,这篇文章就简单介绍跨域的相关知识,并说明在 net core 中怎么设置跨域. 使用的版本为 net6,并使用 Mini ...
- 如何使用Superset可无缝对接MRS进行自助分析
摘要:本文主要介绍如何在MRS之上使用Superset进行数据分析. 本文分享自华为云社区<使用商业智能软件Superset分析MRS数据之最佳实践>,作者: 啊喔YeYe . 1. 概要 ...
- Java实用类-Enum(枚举)
1. 历史 在 JDK 1.5 之前没有枚举类型,那时候一般用接口常量来替代(例如,public static final String male ).JKD1.5之后使用 Java 枚举类型 e ...
- 【Spring】AOP实现原理(三):创建代理
AbstractAutoProxyCreator 在AbstractAutoProxyCreator的wrapIfNecessary方法中,调用getAdvicesAndAdvisorsForBean ...
- 28.MysQL的日志管理及备份与恢复
MySQL 索引.事务与存储引擎 目录 MySQL 索引.事务与存储引擎 MySQL 索引 索引的概念 索引的作用及副作用 索引的作用 索引的副作用 创建索引的原则依据 索引的分类和创建 普通索引 唯 ...