MySQL8.0源码编译和Clion调试

MySQL 是最为流行的开源关系型数据库之一,有关它的使用、优化和运维处理相关的文章汗牛充栋。我个人也写过《MySQL探秘》和《MySQL死锁》系列文章,详细介绍了诸如 MySQL 内存结构、持久化机制、锁和事务等多方面的知识。不过上述知识大多数都来自《高性能MysQL》、《MySQL技术内幕:InnoDB存储引擎》等书籍以及网上一些优秀博主的文章。

所以本人也希望更进一步,进入MySQL源码层面,从源码方面了解其具体实现,为自己累计数据库内核方面的开发经验。有关 MySQL 和 RocksDB 的源码阅读其实已经持续了半年左右,所以现在希望开一个新坑,从源码层面讲解一下 MySQL。

想要了解数据库内核开发,直接去阅读MySQL巨量的源码并不是一个最优的方法,读者们可以先从诸如 Pingcap Talent 和 CMU 15-445/645 课程入手。不过我也只是一个学习者,写系列文章更多是通过记录和输出来帮助学习,所以如有纰漏,还请各位读者指出。

阅读源码过程中,最好可以手动调试,重复了解代码的实现,所以编译和调试MySQL代码很重要,不过整个过程中还是遇到了一些坑,所以这里记录一下整个过程和遇到的坑。

操作系统环境

我把个人的台式机重装了 Ubuntu 20.04 ,内核版本是 5.13.0-44-generic,内存16G,磁盘240G,有关依赖的编译工具版本如下所示。

Read More