文档章节

怎么样使用CLion调试分析MySQL Server

anoty
 anoty
发布于 2017/08/16 20:41
字数 456
阅读 281
收藏 0

由于在写MySQL日志订阅服务时候,需要确定在什么event之后保存position,所以就开始研究MySQL的源码,刚开始采用最原始的打印输出的方式去调试,然后每次改完编译运行,效率好低,让我很绝望,然后我花了些时间研究下怎么使用CLion Debug MySQL。

获取源码

git clone https://github.com/mysql/mysql-server

编译安装初始化数据库

cd mysql-server

cmake \
-DCMAKE_INSTALL_PREFIX=/path/mysql/install \
-DMYSQL_DATADIR=/path/mysql/data \
-DSYSCONFDIR=/path/mysql/etc \
-DMYSQL_UNIX_ADDR=/path/mysql/mysql.sock \
-DWITH_DEBUG=1  \
-DDOWNLOAD_BOOST=1 -DWITH_BOOST=/path/mysql-server/ -DDOWNLOAD_BOOST_TIMEOUT=60000

make -j 4 

make install -j 4

mysqld --initialize-insecure --user=root --datadir=/path/mysql/data

启动MySQL,测试下是否安装成功 

/path/install/bin/mysqld --defaults-file=/path/mysql/etc/my.cnf

使用CLion新建工程并打开源码目录之后,设置CLion 设置CLion CMake选项

CMake Options和你编译安装时的选项一致

-DCMAKE_INSTALL_PREFIX=/path/mysql/install 
-DMYSQL_DATADIR=/path/mysql/data 
-DSYSCONFDIR=/path/mysql/etc 
-DMYSQL_UNIX_ADDR=/path/mysql/mysql.sock 
-DWITH_DEBUG=1  

然后在CLion里,Reload CMake Project

Reload CMake Project

在Run/Debug列表里就可以看到很多选项了

Run/Debug

找到mysqld配置下启动参数 mysqld配置下启动参数

mysqld --defaults-file=/path/mysql/etc/my.cnf

然后以Debug模式启动,看下成功的效果 Debug模式启动

学习MySQL源码的文档

https://dev.mysql.com/doc/internals/en/

可以找到想要学习的功能的源码位置,不至于没头苍蝇,比如主从同步功能(replication) 

https://dev.mysql.com/doc/internals/en/replication-source-code-files.html

更多架构、PHP、GO相关踩坑实践技巧请关注我的公众号:PHP架构师

© 著作权归作者所有

共有 人打赏支持
anoty
粉丝 25
博文 42
码字总数 26186
作品 0
浦东
私信 提问
JetBrains CLion 2018 for Mac(C和C ++ IDE智能代码编辑器)附破解教程

如果您正在寻找一个结构良好的IDE来开发C或C ++项目,那么JetBrains CLion 2018 for Mac这款简化的C和C ++ IDE,可以帮助您编写高质量的代码。而且可以在编写代码时提高您的工作效率:您可以...

_己念
07/13
0
0
CLion 2018.1 发布,改进对 C ++ 17 的支持

CLion 2018.1 已发布,改进了对 C ++ 17 的支持,新的 CMake 操作,各种编辑器改进以及对 Objective-C / Objective-C ++ 的支持。 发行说明 下载地址 WSL Windows 用户现在可通过 WSL 在 Wi...

王练
03/29
2.8K
8
CLion 2017.3.1 EAP 发布,包含 bug 修复

CLion 2017.3.1 的 Early Access Preview 版本发布了,这是对最近发布的主要 CLion 更新的 bug 修复更新。 更新内容: 生成操作中的模板在CLion 2017.3生成定义开始使用函数模板。使用此更新...

周其
2017/12/14
556
1
说说 C 语言编程利器 CLion

CLion 是一款专为开发 C 及 C++ 所设计的跨平台 IDE。 它是以 IntelliJ 为基础设计的,包含了许多智能功能来提高开发人员的生产力,从而提升工作效率 。 1 安装 下载后,点击 CLion-xxx.exe,...

deniro
09/24
0
0
CLion 2017.3 首个 RC 版发布,包含 Bug 修复

CLion 2017.3 首个 RC 版已发布 (build 173.3727.18)。CLion 是 JetBrains 推出的全新的 C/C++ 跨平台集成开发环境。该版本解决了以下的问题: 2017.3 EAP 版本将 Valgrind Memcheck 整合到了...

局长
2017/11/22
1K
3

没有更多内容

加载失败,请刷新页面

加载更多

十万个为什么之为什么大家都说dubbo

Dubbo是什么? 使用背景 dubbo为什么这么流行, 为什么大家都这么喜欢用dubbo; 通过了解分布式开发了解到, 为适应访问量暴增,业务拆分后, 子应用部署在多台服务器上,而多台服务器通过可以通过d...

尾生
39分钟前
2
0
Docker搭建代码质量检测平台-SonarQube(中文版)

Sonar是一个用于代码质量管理的开源平台,用于管理源代码的质量,可以从七个维度检测代码质量。通过插件形式,可以支持包括java,C#,C/C++,PL/SQL,Cobol,JavaScrip,Groovy等等二十几种编程语言...

Jacktanger
46分钟前
2
0
Windows / Linux / MacOS 设置代理上网的方法汇总

本文汇总了 Windows / Linux / MacOS 设置代理上网的各种方法,总结如下: 1、设置系统代理(Windows、Linux、MacOS) 2、设置代理插件(Chrome、Chromium、Firefox、Opera、QQ等浏览器) 3、...

sunboy2050
昨天
4
0
自定义 Maven 的 repositories

有时,应用中需要一些比较新的依赖,而这些依赖并没有正式发布,还是处于milestone或者是snapshot阶段,并不能从中央仓库或者镜像站上下载到。此时,就需要 自定义Maven的<repositories>。 ...

waylau
昨天
3
0
徒手写一个es6代码库

mkdir democd demonpm initnpm install -g babelnpm install -g babel-clinpm install --save-dev babel-preset-es2015-node5 在项目目录创建两个文件夹 functional-playground ......

lilugirl
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部