写点什么

如何在 Mac 下用 Clion 调试 MySQL 源码

用户头像
AI乔治
关注
发布于: 2021 年 04 月 07 日
如何在 Mac 下用 Clion 调试 MySQL 源码

前面写了几篇文章来通过调试 MySQL 源码来分析死锁问题,有读者问如何用 IDE 调试源码,这篇文章简单介绍一下如何在 Mac 下调试。之所以使用调试的方式来分析死锁问题是因为在解决 MySQL 死锁的过程中比较纠结,就算找到了原因,也比较难说服自己原理就是书上或者网上博客里些的那样,所以就开始研究 MySQL 的源码,花了一些时间搭建了在 Clion 中调试源码的环境。整个过程其实非常简单也很顺利。

下载 Clion

Clion 是宇宙第二强的 IDE 公司 jetbrains 旗下的一款 C/C++ IDE 工具,我们做 Java 用的 IntelliJ IDEA、Python 用的 PyCharm、Go 用的 Goland 都是出自这家,很好很强大。从下面的地址下载安装:www.jetbrains.com/clion/

编译安装 MySQL

这里选择的是 5.5 版本的源码,源码体积和编译速度比 5.7 的快太多,对于我们理解 MySQL 的原理没有太大的区别,所以这里选择了 5.5

# 1. 下载解压源码wget https://cdn.mysql.com//Downloads/MySQL-5.5/mysql-5.5.62.tar.gz tar -xzvf mysql-5.5.62.tar.gz
# 2. 生成目录// 生成编译后安装目录及数据目录mkdir -p build_out/data
# 3.编译cmake . -DWITH_DEBUG=1 \-DCMAKE_INSTALL_PREFIX=build_out \-DMYSQL_DATADIR=build_out/datamake && make install
# 4. 初始化 mysql 数据库cd build_outscripts/mysql_install_db
复制代码

Clion 配置

1.配置 Cmake,内容如下图

2.配置 mysqld 的启动参数,指定读取的配置文件路径–defaults-file=/path/to/my.cnf 一个可参考的 my.conf 配置如下

[mysqld]  log-error=log.errdatadir=datapid-file=user.pidskip-grant-tablesinnodb_file_per_table=1port=33060transaction_isolation = READ-COMMITTED
[client]# 客户端来源数据的默认字符集default-character-set = utf8mb4[mysqld]# 服务端默认字符集character-set-server=utf8mb4# 连接层默认字符集collation-server=utf8mb4_unicode_ci[mysql]# 数据库默认字符集default-character-set = utf8mb4
复制代码

点击 debug 按钮进行调试

ps:注意 mysqld 所在的列表不是按字母序来排序的,拼命往下拉就可以找到了。不出意外这个时候,MySQL 就启动起来了,监听了我们上面设置的 33060 端口,用 MySQL 的客户端就可以正常连接上去了(账号 root,密码空)Cion 可以非常方便的断点单步调试和查看变量的值,比如我们在 sql_parse.cc 的 do_command 函数打一个断点,随便执行一个 sql 语句就可以看到单步调试到了这里


到此 MySQL 源码编译调试的过程基本就讲完了,后面会有更多用调试来解决一些具体问题的案例,尽请期待。如果有什么问题可以留言~


看完三件事❤️



如果你觉得这篇内容对你还蛮有帮助,我想邀请你帮我三个小忙:



  1. 点赞,转发,有你们的 『点赞和评论』,才是我创造的动力。

  2. 关注公众号 『 java 烂猪皮 』,不定期分享原创知识。

  3. 同时可以期待后续文章 ing🚀

  4. .关注后回复【666】扫码即可获取学习资料包



作者:挖坑的张师傅

出处:https://club.perfma.com/article/2351484

用户头像

AI乔治

关注

分享后端技术干货。公众号【 Java烂猪皮】 2019.06.30 加入

一名默默无闻的扫地僧!

评论

发布
暂无评论
如何在 Mac 下用 Clion 调试 MySQL 源码