环境:
MacOs M1
vscode
前置:安装brew
## 安装brew
/usr/bin/ruby -e "$(curl -fsSL https://cdn.jsdelivr.net/gh/ineo6/homebrew-install/install)"
## 环境变量
eval "$(/opt/homebrew/bin/brew shellenv)"
下载源码带boost版本
下载之后解压
vscode插件安装
## 直接搜索,然后安装即可
C/C++
C/C++ Clang Command Adapter
CodeLLDB
CMake Tools
在mysql文件夹下创建目录
## 都放到cmake-build-debug文件夹下,方便管理
mkdir cmake-build-debug
cd cmake-build-debug
mkdir data
mkdir etc
进入vscode,在当前工作目录下创建文件夹.vscode,然后创建配置文件settings.json
{
"cmake.buildBeforeRun": true,
"cmake.buildDirectory": "/Users/admin/Desktop/mysql-8.0.33/build",
"cmake.configureSettings": {
"WITH_DEBUG": "1",
"CMAKE_INSTALL_PREFIX": "/Users/admin/Desktop/mysql-8.0.33/cmake-build-debug/bin",
"MYSQL_DATADIR": "/Users/admin/Desktop/mysql-8.0.33/cmake-build-debug/data/mysql_data",
"SYSCONFDIR": "/Users/admin/Desktop/mysql-8.0.33/cmake-build-debug/my.cnf",
"MYSQL_TCP_PORT": "3307",
"WITH_BOOST": "/Users/admin/Desktop/mysql-8.0.33/cmake-build-debug/boost",
"DOWNLOAD_BOOST": "1",
"DOWNLOAD_BOOST_TIMEOUT": "6000",
//"WITH_SSL":"/opt/homebrew/Cellar/openssl@3/3.4.0/bin/openssl"
// 这个openSSL文件在Mac下使用which openssl给出的那个地址是软连接
// 需要去看一下具体的地址,然后在这里配置到bin目录的父目录路径
"WITH_SSL":"/opt/homebrew/Cellar/openssl@3/3.4.0"
}
}
编译:CMake configure
CMake: build target =》 mysqld executor(build target之后会要求选择目标,选择mysqld executor) 回车运行
到mysql的解压目录下新创建的cmake-build-debug目录下编译mysql
## 进到cmake-build-debug目录下
cd cmake-build-debug
## 编译
cmake .. \
-B./build \
-DWITH_DEBUG=1 \
-DCMAKE_INSTALL_PREFIX=. \
-DMYSQL_DATADIR=./data \
-DSYSCONFDIR=./etc \
-DMYSQL_TCP_PORT=3307 \
-DMYSQL_UNIX_ADDR=mysql-debug.sock \
-DWITH_BOOST=../boost \
-DDOWNLOAD_BOOST=0 \
-DDOWNLOAD_BOOST_TIMEOUT=60000 \
-DWITH_SSL=/opt/homebrew/Cellar/openssl@3/3.4.0
## 编译mysqld
## --build build表示构建build目录,此处与-B./build 一致
cmake --build build --target mysqld -j 3
## 编译mysql
cmake --build build --target mysql -j 3
## 这两个文件mysqld和mysql都会在build/bin目录下
初始化mysql
build/bin/msyqld --defaults-file=etc/my.cnf --initialize-insecure
配置launch.json文件,在.vscode目录下,具体的mysql和mysqld的路径要在cmake-build-debug目录下找一下
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "lldb",
"request": "launch",
"name": "Debug mysqld",
"program": "${workspaceFolder}/cmake-build-debug/build/bin/mysqld",
"args": [
"--defaults-file=${workspaceFolder}/cmake-build-debug/etc/my.cnf"
],
"cwd": "${workspaceFolder}"
},
{
"type": "lldb",
"request": "launch",
"name": "Debug mysql",
"program": "${workspaceFolder}/cmake-build-debug/build/bin/mysql",
"args": [
"-uroot",
"-P3307",
"-h127.0.0.1"
],
"cwd": "${workspaceFolder}"
}
]
}
在vscode debug mysqld
在终端使用mysql连接mysql server
build/bin/mysql -h 127.0.0.1 -P 3307 -uroot
调试
点击暂停,然后就可以逐步调试,然后执行SQL语句,就可以开始调试mysql了
增加断点,输入直接输入函数名,查找具体函数也可以在这里查找
Error
- boost包下载超时
## boost包下载超时的报错
## https://archives.boost.io/release/1.77.0/source/boost_1_77_0.tar.bz2
## 这个网站下载的更快
##https://sourceforge.net/projects/boost/
## 下载到工作目录的boost文件夹下,然后改配置文件
# 解决1:
# 修改参数
DOWNLOAD_BOOST_TIMEOUT="60000"
# 解决2:
## 下载带有boost包的mysql,然后配置:
## 配置boost的路径
"WITH_BOOST": "/Users/admin/Desktop/mysql-8.0.33/cmake-build-debug/boost",
## 是否下载boost,不下载
"DOWNLOAD_BOOST": "0",
# 解决3:
## 自己下载boost,然后改同解决2的配置。
- 找不到openssl
## 这个openSSL文件在Mac下使用which openssl给出的那个地址是软连接
## 需要去看一下具体的地址,然后在这里配置到bin目录的父目录路径
## MacOS到2024年10月14日不支持openssl@1.1了,所以这里使用brew 安装openssl 3
"WITH_SSL":"/opt/homebrew/Cellar/openssl@3/3.4.0"
标签:MacOS,cmake,vscode,##,源码,build,mysql,debug,boost
From: https://www.cnblogs.com/tyhA-nobody/p/18616806