Contents
  1. 1. 源码获取
  2. 2. 编译安装初始化数据库
  3. 3. 初始化数据库
  4. 4. 学习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

Contents
  1. 1. 源码获取
  2. 2. 编译安装初始化数据库
  3. 3. 初始化数据库
  4. 4. 学习MySQL源码的文档