ubuntu编译mysql源码

一、下载源码

首先去MySQL官网下载源代码mysql-boost-5.7.34.tar.gz

二、在docker中部署ubuntu

  1. 启动容器
docker run --name ubuntu-mysql -itd -p 3306:3306 -p 6789:22 ubuntu:bionic
docker cp E:/Document/mysql-boost-5.7.34.tar.gz f19aa84edf20:/home/workspace
docker exec -it ubuntu-mysql /bin/bash
  1. 安装依赖
apt install build-essential cmake -y
apt install openssl libssl-dev
apt install libncurses5-dev pkg-config
  1. 解压源码
tar -zxvf mysql-boost-5.7.34.tar.gz
cd mysql-5.7.34/

三、使用命令行编译源码

  1. 创建目录
mkdir -p cmake-build-debug/{data,etc}
cd cmake-build-debug
  1. 配置
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=1 \
-DDOWNLOAD_BOOST_TIMEOUT=60000
  1. 编译
cmake --build build --target mysqld -j 3
  • -j 3 表示3个线程
  • –build 表示构建build目录,此处与-B./build保持一致
  • –target 指定只构建mysqld

四、使用vscode编译源码

  1. 首先要用vscode通过ssh远程连接到ubuntu,可以参考另一篇博文,然后安装好C/C++和CMake Tools两个插件。
  2. 创建配置文件 .vscode/settings.json
{
	"cmake.buildBeforeRun": true,
	"cmake.buildDirectory": "${workspaceFolder}/cmake-build-debug/build",
	"cmake.configureSettings": {
	    "WITH_DEBUG": "1",
	    "CMAKE_INSTALL_PREFIX": "${workspaceFolder}/cmake-build-debug",
	    "MYSQL_DATADIR": "${workspaceFolder}/cmake-build-debug/data",
	    "SYSCONFDIR": "${workspaceFolder}/cmake-build-debug/etc",
	    "MYSQL_TCP_PORT": "3307",
	    "MYSQL_UNIX_ADDR": "${workspaceFolder}/cmake-build-debug/data/mysql-debug.sock",
	    "WITH_BOOST": "${workspaceFolder}/boost",
	    "DOWNLOAD_BOOST": "1",
	    "DOWNLOAD_BOOST_TIMEOUT": "600"
	}
}
  1. 打开命令面板输入如下命令进行编译
  • CMake: Configure
  • CMake: Build Target -> mysqld EXECUTABLE
  1. 配置调试参数 .vscode/launch.json
{
	"version": "0.2.0",
	"configurations": [
	    {
            "type": "cppdbg",
            "request": "launch",
            "name": "Debug mysqld",
            "program": "${workspaceFolder}/cmake-build-debug/build/sql/mysqld",
            "args": [
                "--defaults-file=${workspaceFolder}/cmake-build-debug/etc/my.cnf"
            ],
            "cwd": "${workspaceFolder}"
	    },
	    {
            "type": "cppdbg",
            "request": "launch",
            "name": "Debug mysql",
            "program": "${workspaceFolder}/cmake-build-debug/build/client/mysql",
            "args": [
                "-uroot",
                "-P3307",
                "-h127.0.0.1"
            ],
            "cwd": "${workspaceFolder}"
	    }
	]
}

参考文章地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值