为了更好的使用MySQL数据库,从而在数据库架构设计与应用时给出最好的解决方案,从今天开始对MySQL源码进行一些初步的学习和分析。
当然,首先推荐几本书:Pro MySQL , Expert MySQL , mariadb的设计和实现。 另外就是构建阅读和调试环境,今天我们就主要从环境的
构建说起,MAC 下面最完备的IDE就是 Xcode了,接下来我们看一下,如何使用Xcode来进行MySQL的代码阅读和调试工作。
AppStore上面搜索 Xcode,然后下载安装即可。
官方文档: http://brew.sh/
http://ntraft.com/installing-gdb-on-os-x-mavericks/
mysql的编译是采用的cmake ,官网直接下载安装即可:
cmake 官网下载
推荐Percona 版本或者Mariadb
Percona 源码 下载链接.
Mariadb 源码 下载链接 .
我们以percona-server-5.6.24为例:
cd percona-server-5.6.24
mkdir work
// 源码目录执行,由于tokudb目前无法支持mac,所以要关闭编译
cmake . -G "Xcode" -DWITH_DEBUG=1 -DWITH_TOKUDB_STORAGE_ENGINE=OFF -DWITHOUT_TOKUDB_STORAGE_ENGINE=ON -DCMAKE_INSTALL_PREFIX=/Users/ruiaylin/Documents/MySQL/percona-server-5.6.24/work
cmake 之后,会生成一个 xcode的工程文件, 使用xcode 打开就可以把mysql工程加入到 xcode了。
在加入了xcode之后,直接点击xcode的编译按钮就可以进行编译和build了,等完成之后会生成对应的二进制可执行文件。
这个过程其实就是手工执行 make , make install的过程。但是 编译完成需要自己手工进行可执行文件的copy工作。
cd work ; mkdir {bin,share,scripts,data}
cp sql/Debug/mysqld work/bin/
cp client/Debug/mysql* work/bin/
cp extra/Debug/my_print_defaults work/bin/
cp -r sql/share/* work/share/
cp -r scripts/* work/scripts/
chmod +x work/scripts/*
cp scripts/*.sql work/share/
cp support-files/*.cnf work/share/
./scripts/mysql_install_db --user=ruiaylin --basedir=/Users/ruiaylin/Documents/MySQL/percona-server-5.6.24/work --datadir=/Users/ruiaylin/Documents/MySQL/percona-server-5.6.24/work/data --force
xcode中调试 MySQL , 配置三个三个环节变量:
--user=ruiaylin
--basedir=/Users/ruiaylin/Documents/MySQL/percona-server-5.6.24/work
--datadir=/Users/ruiaylin/Documents/MySQL/percona-server-5.6.24/work/data
my.cnf 放到 /etc下面。