IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    MySQL源码之–调试环境Xcode

    Vlix_Liu发表于 2015-11-09 14:22:23
    love 0

    MySQL源码分析导读

    为了更好的使用MySQL数据库,从而在数据库架构设计与应用时给出最好的解决方案,从今天开始对MySQL源码进行一些初步的学习和分析。
    当然,首先推荐几本书:Pro MySQL , Expert MySQL , mariadb的设计和实现。 另外就是构建阅读和调试环境,今天我们就主要从环境的
    构建说起,MAC 下面最完备的IDE就是 Xcode了,接下来我们看一下,如何使用Xcode来进行MySQL的代码阅读和调试工作。

    安装必要的软件和调试工具

    Xcode IDE安装

    AppStore上面搜索 Xcode,然后下载安装即可。

    安装gdb 调试器

    1. 安装 homebrew

      官方文档: http://brew.sh/

    2. 安装 gdb 并签名,具体步骤可以baidu或者google ,附上一个教程

      http://ntraft.com/installing-gdb-on-os-x-mavericks/

      安装 cmake 工具

    mysql的编译是采用的cmake ,官网直接下载安装即可:
    cmake 官网下载

    准备MySQL源码

    推荐Percona 版本或者Mariadb
    Percona 源码 下载链接.
    Mariadb 源码 下载链接 .

    构建 Xcode 工程文件,并进行预编译

    我们以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了。

    编译MySQL源码

    在加入了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 调试

    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下面。



沪ICP备19023445号-2号
友情链接