原标题:玩转MySQL 8.0源码编译

导读

最近十年来又一次玩玩MySQL源码编译安装,挺D疼的。

这阵子结课了,闲来无事就继续折腾之前记录的一些TODO,其中一个是令人D疼的MySQL源码编译。

此前我最后一次编译MySQL源码大概10年前了,再后来有人问我怎么编译源码安装,我一般都是建议直接下载二进制包安装,其实真挺方便点的,性能上的损失也是微乎其微。

编译安装MySQL前,需要先安装boost,因此有两种不同的安装方案。

提示下,编译MySQL 8.0版本,需要gcc版本5.3.0以上才行。我这次的编译环境是CentOS 7.5,其gcc版本是4.8.5,因此我在后面附上安装新版本gcc的方法,并且在编译参数中特别指定了新版本的绝对路径(这里有个小插曲,一开始我设置了环境变量,不行;修改Makefile参数,也不行;后来把新版本gcc做个软链接就行了。最后在重庆八怪的提醒下,才知道原来还可以在编译参数里设置绝对路径)。

先说第一种,自带boost的源码编译

首先,下载带boost代码的MySQL源码包,在官网下载页面有相应的提示:

解压缩后,就可以开始编译了。首先,指定编译的选项:

[root@yejr.me]# cd /opt/src/mysql-8.0.15/

cmake .

-DWITH_BOOST=/opt/mysql-8.0.15/boost/

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql-8.0.15

-DMYSQL_DATADIR=/data/mysql

-DWITHOUT_CSV_STORAGE_ENGINE=1

-DWITHOUT_BLACKHOLD_STORAGE_ENGINE=1

-DWITHOUT_FEDERATED_STORAGE_ENGINE=1

-DWITHOUT_ARCHIVE_STORAGE_ENGINE=1

-DWITHOUT_MRG_MYISAM_STORAGE_ENGINE=1

-DWITHOUT_NDBCLUSTER_STORAGE_ENGINE=1

-DFORCE_INSOURCE_BUILD=1

-DCMAKE_CXX_COMPILER=/usr/local/bin/g++

-DCMAKE_C_COMPILER=/usr/local/bin/gcc

在上面的参数中,我把不常用的引擎直接给禁用了,读者们若有需要个别引擎可自行删除对应选项即可。而DEBUG、SSL等几个选项则建议不要禁用。

为了好玩,也为了应对某些流氓安全扫描工具(你们懂得的^@@^),我特地把MySQL版本号修改掉,只需修改 mysql_version.h 文件即可,例如:

[root@yejr.me]# vim include/mysql_version.h

...

#define MYSQL_SERVER_VERSION "3306.0.15"

#define MYSQL_BASE_VERSION "mysqld-3306.0"

#define MYSQL_SERVER_SUFFIX_DEF ""

#define MYSQL_VERSION_ID 33060015

#define LIBMYSQL_VERSION "3306.0.15"

#define LIBMYSQL_VERSION_ID 33060015

...

接下来就是执行make && make install,顺利的话就完成编译并安装了。如果编译错误,则删除CMakeCache.txt文件后解决对应错误,重新编译即可。

编译完后看到的MySQL版本号就是这样的了:

[root@yejr.me]# /usr/local/mysql/bin/mysqld --verbose -V

/usr/local/mysql/bin/mysqld Ver 3306.0.15 for Linux on x86_64 (Source distribution)

有没有感觉有点酷酷的,嘿。

再说第二种,自行安装boost后再编译

这种方式实在费劲,强烈不推荐。

可以采用YUM/RPM包方式安装boost,也可以自己下载源码包编译安装,或在编译MySQL时指定参数自行下载编译(建议用这个方法)。

下面演示的版本是Percona Server 8.0.15,要求boost版本是1.68.0以上,而CentOS 7.5安装的boost版本是1.53.0,所以需要自行下载安装。

https://www.rpmfind.net/linux/rpm2html/search.php

如果没找到合适的版本,可以在下面这个地址下载 boost-1.69.0 版本源码包。

https://sourceforge.net/projects/boost/

下载后,执行编译并安装即可。

[root@yejr.me]# ./bootstrap.sh --prefix=/usr/local/boost

[root@yejr.me]# ./b2 install

安装完boost后,再开始编译MySQL。

另外,上面有提到过,如果不想事先手动安装boost,可以增加一个DOWNLOAD_BOOST参数,就像下面这样:

[root@yejr.me]# cd /opt/src/percona-server-8.0.15-5

cmake .

-DOWNLOAD_BOOST=1

-DWITH_BOOST=/opt/src/percona-8.0.15-5/boost

-DCMAKE_INSTALL_PREFIX=/usr/local/percona-8.0.15-5

-DMYSQL_DATADIR=/data/mysql

-DWITHOUT_CSV_STORAGE_ENGINE=1

-DWITHOUT_BLACKHOLD_STORAGE_ENGINE=1

-DWITHOUT_FEDERATED_STORAGE_ENGINE=1

-DWITHOUT_ARCHIVE_STORAGE_ENGINE=1

-DWITHOUT_MRG_MYISAM_STORAGE_ENGINE=1

-DWITHOUT_NDBCLUSTER_STORAGE_ENGINE=1

-DWITHOUT_TOKUDB_STORAGE_ENGINE=1

-DWITHOUT_TOKUDB=1

-DWITHOUT_ROCKSDB_STORAGE_ENGINE=1

-DWITHOUT_ROCKSDB=1

-DFORCE_INSOURCE_BUILD=1

-DCMAKE_CXX_COMPILER=/usr/local/bin/g++

-DCMAKE_C_COMPILER=/usr/local/bin/gcc

后面同样是执行make && make install等着顺利编译安装即可。

enjoy mysql 8.0。

附录:在CentOS 7.5下安装gcc 5.5.0

安装官方MySQL 8.0需要用gcc 5.3.0以上版本,所以需要先安装高版本gcc,我这里选择的是gcc-5.5.0。

在这里下载:

http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/

解压缩后,执行下面的命令,下载其他依赖包:

[root@yejr.me]# cd gcc-5.5.0

#下载mpfr、gmp、mpc、isl等依赖包

[root@yejr.me]# ./contrib/download_prerequisites

#开始编译gcc

[root@yejr.me]# mkdir build && cd build

[root@yejr.me]# ../configure --enable-checking=release

--enable-languages=c,c++ --disable-multilib

[root@yejr.me]# make && make install

看起来其实挺简单的对不对 :)

2.9.4 MySQL Source-Configuration Options,https://dev.mysql.com/doc/refman/8.0/en/source-configuration-options.html

Installing Percona Server for MySQL 8.0.15-5,https://www.percona.com/doc/percona-server/5.7/installation.html

Centos7升级gcc学习笔记 https://www.cnblogs.com/highway-9/p/5628852.html

责任编辑:

boost mysql_玩转MySQL 8.0源码编译相关推荐

  1. 手机编译mysql_玩转MySQL 8.0源码编译

    先说第一种,自带boost的源码编译 首先,下载带boost代码的MySQL源码包,在官网下载页面有相应的提示:  解压缩后,就可以开始编译了.首先,指定编译的选项: [root@yejr.me]# ...

  2. ambari 2.5.0源码编译安装

    参考:https://www.ibm.com/developerworks/cn/opensource/os-cn-bigdata-ambari/index.html Ambari 是什么 Ambar ...

  3. cmake 编译curl源码_OpenCV4.0 源码编译

    之前写过几篇关于OpenCV的博客,都是基于openCV 3.14写的,10月份OpenCV发布了4.0的bate版本,我就切换到4.0版本上来.之后的博客都会是基于4.0版本的.本文主要介绍一下三个 ...

  4. Android4.0源码编译方法以及错误解决方案

    from:http://blog.csdn.net/wanjun8659/article/details/8095664 历时一个星期,终于将android4.0源码编译成功,中间经历了各种曲折,非常 ...

  5. postgresql 12.0 源码编译安装

    postgresql 12.0 源码编译安装 1.安装相关软件包 su - root yum install -y cmake gcc gcc-c++ perl readline readline-d ...

  6. Atlas 2.2.0源码编译及安装步骤

    Atlas 2.2.0源码编译及安装步骤 一.源码编译 1. 下载源码 2. 前置环境安装 3. 修改版本号 4. 修改源码中 atlas与kafka版本兼容问题 5. 开始编译 6. 问题锦集 二. ...

  7. tesseract-4.0.0源码编译安装

    tesseract-4.0.0源码编译安装 安装开发工具 apt-get -y install gcc g++ make cmake autoconf automake libtool pkg-con ...

  8. python 3.10.0源码编译安装

    python 3.10.0源码编译安装 文章目录 python 3.10.0源码编译安装 1. 安装编译依赖工具 2. 下载python 3.10.0 3. 编译安装 Python 4. 体验 1. ...

  9. mysql 5.7 源码编译安装_mysql-5.7.*源码编译安装

    mysql-5.7.*源码编译安装 系统安装条件 官方文档说明:http://dev.mysql.com/doc/refman/5.7/en/source-installation.html 1> ...

  10. linux gcc-9.2.0 源码编译

    目录 下载gcc-9.2.0源码 解压源码包 下载依赖 创建编译输出目录 编译配置信息 编译 安装 清理 查看GLIBCXX的版本 验证 下载gcc-9.2.0源码 http://ftp.gnu.or ...

最新文章

  1. linux检测病毒工具,Linux下查杀病毒工具
  2. Doc2Vec,Word2Vec文本相似度 初体验。
  3. linux进阶命令2
  4. php职业认证,如何用 PHP 进行 HTTP 认证
  5. Android 隐藏状态栏,沉浸式状态栏,状态栏背景色,状态栏字体色,透明状态工具类
  6. Spring Boot 终极清单
  7. MySQL设置数据格为空白或NULL
  8. 小学教师计算机应用培训通讯稿,暑期培训通讯稿
  9. Linux查看磁盘块大小
  10. 【收藏干货】axios配置大全
  11. Matlab 绘制箱线图
  12. 算法学习之路|取石子
  13. 界面开发控件DotNetBar for WPF教程:MobileRibbon快速入门指南
  14. easyui事件方法onChange()、onSelect()、 onLoadSuccess()
  15. 百度网盘下载速度慢的解决方式
  16. clickhouse UI可视化工具
  17. 中国鞋服行业首个AIGC准专业级设计大赛来了!
  18. (二)WaveDrom Editor使用教程
  19. 微信公众号--会员数据导出
  20. IntellIdea中的jsp中include出现乱码问题

热门文章

  1. 基于RGB图像的机器人抓取算法汇总
  2. c++ string
  3. 【转】HEIF图片存储格式探秘
  4. word2007里插入分节符
  5. UIView常见方法
  6. getBoundingClientRect()兼容性处理
  7. 利用IDLE对 dem进行批量拼接处理
  8. ENVI实验教程(6)实验六、遥感图像分类
  9. 高分四号数据计算表观反射率
  10. cordova自定义插件步骤