在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