MySQL源码下载
下载地址: https://github.com/mysql/mysql-server/releases
本文章下载的是8.0.25
MySQL源码编译
编译依赖
(1) apt install libncurses-dev
(2) apt install libssl-dev
(3) 该文章中描述的是相关依赖: https://blog.csdn.net/fuzhiyu1985/article/details/117356058?spm=1001.2014.3001.5501
(4) MySQL8.0.25依赖的boost是1.73.0版本
Clion调试配置
通过Clion调试MySQL源码,主要是要把MySQL编译路径与MySQL安装路径配置成一样的。
(1) 将下载好的源码放到home下面
(2) 解压源码,在源码下面创建 build 和 /build/data 2个文件夹
(3) 配置Clion的Cmake的编译目录
(4) 配置Clion的Cmake的编译参数
-DCMAKE_BUILD_TYPE=Debug
-DWITH_BOOST=/home/tool/boost_1_73_0
-DCMAKE_INSTALL_PREFIX=/home/code/mysql-server-mysql-8.0.25/build(编译路径与安装路径相同)
-DMYSQL_DATADIR=/home/code/mysql-server-mysql-8.0.25/build/data(数据库初始化路径)
-DSYSCONFDIR= home/code/mysql-server-mysql-8.0.25/build
-DMYSQL_UNIX_ADDR=/home/code/mysql-server-mysql-8.0.25/build/data/mysql.sock
(5) MySQL编译
第一种: 使用Clion进行编译
第二种: 进入/home/code/mysql-server-mysql-8.0.25/build,执行make -j 4
由于Clion导入MySQL源码时,会在/home/code/mysql-server-mysql-8.0.25/build下面生成makefile
(6) MySQL初始化
进入/home/code/mysql-server-mysql-8.0.25/build/bin,执行:在执行如下语句之前,需要创建mysql用户组和mysql用户(groupadd mysql / useradd -r -g mysql -s /bin/false mysql
)
命令: ./mysqld --basedir=/home/code/mysql-server-mysql-8.0.25/build --datadir=/home/code/mysql-server-mysql-8.0.25/build/data --initialize-insecure --user=mysql
(7) 将/home/code/mysql-server-mysql-8.0.25/build/data,加入完全权限:
chmod -R 777 /home/code/mysql-server-mysql-8.0.25/build/data
(8) 配置Clion的mysqld
步骤一: 如下图
步骤二: 如下图
Program arguments:
--basedir=/home/code/mysql-server-mysql-8.0.25/build --datadir=/home/code/mysql-server-mysql-8.0.25/build/data --user=mysql
Working directory:
/home/code/mysql-server-mysql-8.0.25/build/data
(9) 调试mysqld
步骤一: 如下图, 启动mysqld,验证mysqld是否启动(ps -ef | grep mysql
)
步骤二: do_command函数加上断点
步骤三: 执行: ./mysql -uroot -h127.0.0.1 -P3306 -p
(没有密码,直接回车,初始化使用的是--initialize-insecure
)
附录
操作系统: 20.04.1-Ubuntu
Clion版本: Clion 2021.1.1