先说第一种,自带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

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

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

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

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/

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

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

  1. ambari 2.5.0源码编译安装

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

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

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

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

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

  4. postgresql 12.0 源码编译安装

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

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

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

  6. tesseract-4.0.0源码编译安装

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

  7. python 3.10.0源码编译安装

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

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

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

  9. Android源码定制(1)——Android6.0源码编译

    一.前言 最近在研究Xposed框架定制,恰好又看到看雪上两个大佬关于源码定制和Xposed源码定制的帖子,所以尝试基于Android6.0版本,详细记录一下从源码下载到Xposed框架定制的全过程. ...

最新文章

  1. JavaScript数据类型检测总结
  2. 使用ZeroClipboard解决跨浏览器复制到剪贴板的问题
  3. php+include+引入html文件,include引入文件
  4. python和php可以一起用吗_Apache同时支持PHP和Python的配置方法
  5. 学习Java的相关知识
  6. a4b5笔记本大小对比_天津订做笔记本*价格多少【广通印务】
  7. 研究生举报导师强迫学生延期毕业,事件再三反转,学校回应:开展调查
  8. 6004.ubuntu18.04移植qgroundcontrol地面站
  9. 数学建模思路模板经典案例(看完快速入门)
  10. 波士顿学院的计算机科学,权威公布:美国最强商学院,TOP5里有你的梦校吗?...
  11. 计算机的供电方式,电脑主板电源供电方式
  12. 图像质量评估指标(3) 特征相似度FSIM
  13. 多硬盘分区管理fdisk
  14. 云函数+微信公众号到个人微信
  15. 在Linux系统下建立强大的FTP搜索引擎
  16. Nature重磅:软硬分离、图灵完备,清华首次提出“类脑计算完备性”
  17. NVR(网络视频录像机)介绍
  18. dribbble加速vpn_关于Dribbble设计的几点思考
  19. R语言将数据导出到csv时出现科学计数表示
  20. matlab所有峰值,局部最大

热门文章

  1. 逻辑操作符的备选表示
  2. linux启用网卡vlan,LINUX (UBUNTU) 双网卡多VLAN的Server 配置
  3. mysql快速导入导出数据库_mysql快速导出与导入
  4. java上机实验答案_java上机实验答案与解析
  5. python的类里的属性是否可以为列表_Python中如何获取类属性的列表
  6. k2p一直亮红灯搜不到信号_周迅感情亮红灯?真离了!?亮红灯英文是red light ?red 对了,但不用 light!...
  7. php 自己电脑运行内存,php 统计网页打开耗时和脚本运行内存
  8. matlab 指定区域随机游走_了解随机游走模型和移动平均过程(Python)
  9. linux c 修改用户组,Linux C Function()参照之用户组篇
  10. 代码中findOne方法找不到