在Mac上使用CLion编译MySQL
源码获取
git clone https://github.com/mysql/mysql-server
or
https://dev.mysql.com/downloads/mysql/
解压
mysql-server 为源码目录
新建mysql、data目录
mysql为basedir
data为datadir
编译安装初始化数据库
cd mysql-server
cmake \
-DCMAKE_INSTALL_PREFIX=/your_path/mysql \
-DMYSQL_DATADIR=/your_path/mysql/data \
-DSYSCONFDIR=/your_path/mysql \
-DMYSQL_UNIX_ADDR=/your_path/mysql/mysql.sock \
-DWITH_DEBUG=1 \
-DDOWNLOAD_BOOST=1 -DWITH_BOOST=/your_path/mysql-server/ -DDOWNLOAD_BOOST_TIMEOUT=60000
make -j 4
make install -j 4
初始化数据库
/your_path/mysql/scripts/mysql_install_db –user=mysql –basedir=/your_path/mysql –datadir=/Users/xmzj/SourceCode/mysql/data
不同版本数据库有不同初始化方式,本文使用的是MySQL 5.6
启动MySQL,测试下是否安装成功
/path/mysql/bin/mysqld –defaults-file=/path/mysql/my.cnf
在CLion欢迎页选择New CMake Project from Sources,选中CMakeLists.txt,Open Existing Project
CLion会自动Load工程
然后,CLion 偏好设置,Build, Execution, Deployment 的CMake选项
CMake Options和你编译安装时的选项一致
-DCMAKE_INSTALL_PREFIX=/path/mysql
-DMYSQL_DATADIR=/path/mysql/data
-DSYSCONFDIR=/path/mysql
-DMYSQL_UNIX_ADDR=/path/mysql/mysql.sock
-DWITH_DEBUG=1
然后在CLion里,Reload CMake Project
在Run/Debug列表里就可以看到很多选项了 Edit Configurations…
找到mysqld配置下启动参数 mysqld配置下启动参数
mysqld –defaults-file=/path/mysql/etc/my.cnf
然后以Debug模式启动,看下成功的效果 Debug模式启动
这里故意把ib_qry_type_t改为0ib_qry_type_t 让它报错
学习MySQL源码的文档
https://dev.mysql.com/doc/internals/en/
可以找到想要学习的功能的源码位置,比如主从同步功能(replication)
https://dev.mysql.com/doc/internals/en/replication-source-code-files.html