Build MySQL_5.7.30 With Source Code On Mac Catalina

2020/12/27

Mac Catalina上准备好C/C++开发环境后,只需要再安装cmake,就可以编译MySQL源码了。

brew install cmake

下载MySQL源码

选择版本5.7.30(计划先看5.x,再看8.0,然后在源码层面做对比)

国内镜像下载地址(搜狐),选择mysql-boost-5.7.30.tar.gz

mysql-boot是指包含了C++ Boost库的MySQL源码,对于未在本地安装(或无法安装)Boost库的开发环境较为友好。

进行编译

注意cmake参数配置

配置前,可以先看看官方文档的CMake配置说明,对于CMake这一工具也能多些了解。

# Specify an installation directory
PREFIX_DIR=/data/mysql-5.7.30
cmake  \
  -DCMAKE_INSTALL_PREFIX=${PREFIX_DIR}  \
  -DMYSQL_DATADIR=${PREFIX_DIR}/data  \
  -DSYSCONFDIR==${PREFIX_DIR}/etc  \
  -DMYSQL_UNIX_ADDR=${PREFIX_DIR}/etc/mysql.sock  \
  -DWITH_MYISAM_STORAGE_ENGINE=1  \
  -DWITH_INNOBASE_STORAGE_ENGINE=1  \
  -DWITH_MEMORY_STORAGE_ENGINE=1  \
  -DDEFAULT_COLLATION=utf8mb4_general_ci  \
  -DMYSQL_TCP_PORT=3306  \
  -DENABLED_LOCAL_INFILE=1  \
  -DWITH_PARTITION_STORAGE_ENGINE=1  \
  -DEXTRA_CHARSETS=all  \
  -DDEFAULT_CHARSET=utf8mb4  \
  -DENABLE_DOWNLOADS=1  \
  -DWITH_BOOST=./boost

开始构建

执行make,生成二进制文件,过程较慢,在2017版MBA 1.8GHz Dual Core i5的CPU下执行了1.3小时。

time make
...
make  4125.91s user 289.12s system 95% cpu 1:16:48.86 total