MySQL源码调试

参考了几篇文章,还是这篇较靠谱, mac 上调试 MySQL 源码

简单记录下步骤

  • AppStore上搜索下载并安装 xcode,官网下载安装 cmake, 安装 gdb (可直接 homebrew 安装)
  • 下载源码,我下载的是 percona-server-5.7.22
  • 配置阶段
    • cd percona-server-5.7.22-22
    • mkdir work
    • cmake mysql 5.7 需要排除掉 rocksdb,-DWITH_ROCKSDB_STORAGE_ENGINE=OFF -DWITHOUT_ROCKSDB_STORAGE_ENGINE=ON , 否则有头文件依赖,通不过编译
    • 依赖 boost,需要加上 boost 下载安装参数,-DDOWNLOAD_BOOST=1 -DWITH_BOOST=/your_path/percona-server-5.7.22-22/boost
    • cmake . -G “Xcode” -DWITH_DEBUG=1 -DWITH_TOKUDB_STORAGE_ENGINE=OFF -DWITHOUT_TOKUDB_STORAGE_ENGINE=ON -DWITH_ROCKSDB_STORAGE_ENGINE=OFF -DWITHOUT_ROCKSDB_STORAGE_ENGINE=ON -DCMAKE_INSTALL_PREFIX=/your_path/percona-server-5.7.22-22/work -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/your_path/percona-server-5.7.22-22/boost
  • 生成 MySQL.xcodeproj 后用 xcode 打开,然后进行 ALL_BUILD, 相当于 make , make install 过程
  • 接下来 copy 文件到 work 目录
    • 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/
  • 初始化数据库
    • mysqld --initialize-insecure --user=系统用户名
  • 返回 xcode 选择 active schema 为 mysqld , 并且 project->schema->edit schema , 添加 Arguments(启动时参数)
    • –user=系统用户名
    • –datadir=/Users/ruiaylin/Documents/MySQL/percona-server-5.6.24/work/data
  • my.cnf 不需要管,有需要再创建和指定,创建 /tmp/mysql.sock ,xcode 中启动 mysqld
  • 命令行 mysql -hlocalhost -uroot 连接上,xcode 中代码断点可以打在 sql_parser.cc > do_command 方法上

MySQL源码调试_第1张图片

你可能感兴趣的:(mysql)