wsl2 +vscode 搭建mysql8.0+调试环境
-
官网下载mysql 源码
-
在子系统中解压,假设解压后的目录路径为
$mysql_home
-
创建目录
mkdir $mysql_home/build mkdir $mysql_home/etc mkdir $mysql_home/data mkdir $mysql_home/boost cd $mysql_home/build
-
手动下载
boost_1_73_0.tar.gz
,并放到boost目录下 -
下载一些依赖
sudo apt install build-essential cmake bison libncurses5-dev libssl-dev pkg-config
-
编辑build.sh文件
cmake .. -DCMAKE_INSTALL_PREFIX=$mysql_home/build \ -DWITH_BOOST=$mysql_home/boost \ -DWITH_DEBUG=1 make -j 4
这里如果机器内存不足,可能会经常崩溃,主要是因为wsl2不断使用内存作为buffer,并且不归还,最后主机内存使用太多被kill掉了。
解决方案:
在资源管理器输入 %UserProfile%,然后创建.wslconfig文件,内容如下
[wsl2]
memory=8GB
swap=8GB
localhostForwarding=true
然后重启一下 wsl,在powershell中使用 wsl –shutdown,再打开即可
-
编辑etc/my.cnf文件
[mysql] local-infile=1 [mysqld] local-infile=1 basedir=/home/xfchen/workspace/mysql-8.0.25/build datadir=/home/xfchen/workspace/mysql-8.0.25/data innodb_buffer_pool_size=4G
-
初始化mysqld
bin/mysqld --defaults-file=../etc/my.cnf --initialize-insecure
-
vscode 连接wsl2,安装以下插件
C/C++ C/C++ Clang Command Adapter CodeLLDB
-
ubuntu 安装llvm clang
sudo apt install llvm clang
-
在sql_parser.cc 文件中的 do_command 处打断点,并点击vscode调试按钮,然后命令行执行
bin/mysql -uroot
最终效果