文档章节

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

anoty
 anoty
发布于 2017/08/16 20:41
字数 456
阅读 187
收藏 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
粉丝 23
博文 37
码字总数 23921
作品 0
浦东
JetBrains CLion 2018 for Mac(C和C ++ IDE智能代码编辑器)附破解教程

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

_己念
07/13
0
0
说说 C 语言编程利器 CLion

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

deniro
09/24
0
0
如何在linux下阅读源码以及提取写简单demo

//如何在linux下阅读源码以及提取写demo 这里以 ps 为例 用到的工具有 clion 先查看 ps 路径 which 查看源码包 dpkg 使用 apt-get 下载(这里可能会报xxxxxxxx cannot be authenticated. 更新...

土匪猿
06/26
0
0
用Visual Studio Code和CLion进行EOS开发

每一个开发人员都需要一个良好的IDE,EOS开发也是一样,为项目开发过程构建一个良好的IDE环境是第一步。这就是为什么我们要写这个如何使用VS Code或者CLion进行EOS开发的快速教程的原因。 我...

笔阁
08/06
0
0
说说 C 语言中的变量与算术表达式

我们先来写一个程序,打印英里与公里之间的对应关系表。公式: 程序如下: 在 CLion 中按下 shift + F10 进行编译运行代码哦O(∩_∩)O~ 如果在 Clion 中出现 , 可能是因为之前程序还在运行导...

deniro
09/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周三乱弹 —— 我们无法成为野兽

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @ _刚刚好: 霸王洗发水这波很骚 手机党少年们想听歌,请使劲儿戳(这里) hahahahahahh @嘻酱:居然忘了喝水。 让你喝可乐的话, 你准忘不了...

小小编辑
41分钟前
1
0
vm GC 日志 配置及查看

-XX:+PrintGCDetails 打印 gc 日志 -XX:+PrintTenuringDistribution 监控晋升分布 -XX:+PrintGCTimeStamps 包含时间戳 -XX:+printGCDateStamps 包含时间 -Xloggc:<filename> 可以将数据保存为......

Canaan_
昨天
0
0
学习设计模式——生成器模式

1. 认识生成器模式 1. 定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示 2. 组成: Builder:生成器接口,定义创建一个Product对象所需要的各个组件的操作,...

江左煤郎
昨天
0
0
C语言精要(第二章:基本数据类型)

2.1 C语言基本数据类型 在计算机术语中,把⼆进制数中的某⼀位数又称为⼀个⽐特(bit)。⽐特这个单位对于计算机⽽⾔,在度量上是最⼩的单位。除了⽐特之外,还有字节(byte)这个术语。⼀个...

ryanliue
昨天
0
0
实现下拉菜单多选框效果

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><li>工作意愿地:<%-- <c:forEach items="${list}" var="list"><input type="checkbox" value="${list......

lanjian28
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部