计算云上对mysql源码debug

前准备

vscode(安装remote dev插件)、mysql源码、c/c++、安装cmake、安装gcc
mysql源码:git clone https://github.com/mysql/mysql-server.git
cmake安装:sudo yum install cmake3
查看cmake版本:cmake --version
安装gcc:sudo yum install gcc

在计算云上编译mysql

1、配置(进入mysql源码文件目录)

创建编译目录

mkdir -p cmake-build-debug/{data\etc}
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=1 \
-DDOWNLOAD_BOOST_TIMEOUT=60000

这一步遇到的问题总结:
1、 遇到Error: Unable to find a match: gcc-toolset-12-gcc gcc-toolset-12-gcc-c++ gcc-toolset-12-binutils gcc-toolset-12-annobin-annocheck gcc-toolset-12-annobin-plugin-gcc 需要更换yum源。
2.CMake Error: The source directory “/mysql” does not appear to contain CMakeLists.txt.目录需要跳到CMakeLists.txt.上级。
3、Cannot find RPC development libraries. You need to install the required
packages:

Debian/Ubuntu:              apt install libtirpc-dev
RedHat/Fedora/Oracle Linux: yum install libtirpc-devel
SuSE:                       zypper install glibc-devel
按照步骤安装yum install libtirpc-devel

编译

# 查看有多少核
cat /proc/cpuinfo |grep "core" |wc -l
# 替换你自己计算云核数,我这里是32核。
cmake --build build --target mysqld -j 32

初始化数据库
mysql配置文件写道这个目录下 cmake-build-debug/etc/my.cnf

cat > etc/my.cnf <<EOF
[mysqld]
port=3307
user=root
socket=mysql.sock
innodb_file_per_table=1
EOF

初始化数据库
build/runtime_output_directory/mysqld --defaults-file=etc/my.cnf --initialize-insecure

## window下vscode连接上远程

连接上远程后进入mysql源码目录, run and debug 创建mysqld文件夹.vscode,点击run and bebug 启动mysqld
创建文件 .version/launch.json

{
    // 使用 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/runtime_output_directory/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/data/mysql",
            "args": [
                "-uroot",
                "-P3007",
                "-h127.0.0.1"
            ],
            "cwd":"${workspaceFolder}"
        }
    ]
}

最后需要在计算云上安装mysql客户端,正常安装mysql,启动计算云mysql。
1、到mysql bin目录下: mysql -uroot -P3007 -h127.0.0.1
2、或者直接根据bin路径 ,例如:/usr/local/mysql/bin/mysql -uroot -P3307 -h127.0.0.1
3、断点调试;正常写入sql语句,在vscode中bedug
注:要先run后开mysql,结束先退mysql后关vscode中调试,当不小心先关了调试,及时退出计算云mysql,不然当mysql客户端没退出再次开启run and debug时容易出现singal异常,出现异常需要删除cmake-build-debug中build文件,重新配置编译初始化。
注:有任何问题,欢迎底下评论,共同讨论学习

  • 19
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是 MySQL 8.0.23 码编译安装的步骤: 1. 下载 MySQL 码包 你可以从 MySQL 官网下载到最新的 MySQL 码包,或者使用以下命令下载: ``` wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.23.tar.gz ``` 2. 解压码包 使用以下命令解压码包: ``` tar -zxvf mysql-8.0.23.tar.gz ``` 3. 安装编译所需的依赖 ``` sudo apt-get install libncurses5-dev libssl-dev libaio-dev ``` 4. 创建安装目录 ``` sudo mkdir /usr/local/mysql ``` 5. 创建 MySQL 用户和用户组 ``` sudo groupadd mysql sudo useradd -r -g mysql -s /bin/false mysql ``` 6. 编译码 进入码目录,使用以下命令编译: ``` cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DMYSQL_DATADIR=/usr/local/mysql/data \ -DWITH_BOOST=boost \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_PARTITION_STORAGE_ENGINE=1 \ -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \ -DWITH_DEBUG=0 \ -DCMAKE_EXE_LINKER_FLAGS="-ljemalloc" make ``` 其中,`-DCMAKE_INSTALL_PREFIX` 指定 MySQL 的安装目录,`-DMYSQL_DATADIR` 指定 MySQL 数据库文件存储目录,`-DWITH_BOOST` 指定使用 boost 库,`-DWITH_INNOBASE_STORAGE_ENGINE`、`-DWITH_PARTITION_STORAGE_ENGINE` 和 `-DWITH_PERFSCHEMA_STORAGE_ENGINE` 分别指定使用 InnoDB、Partition 和 Performance Schema 存储引擎,`-DWITH_DEBUG` 指定不使用调试模式,`-DCMAKE_EXE_LINKER_FLAGS` 指定使用 jemalloc 库。 7. 安装 MySQL 使用以下命令安装 MySQL: ``` sudo make install ``` 8. 配置 MySQLMySQL 的配置文件复制到 `/etc` 目录下: ``` sudo cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql.server sudo cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf ``` 修改 `/etc/my.cnf` 文件,将以下内容添加到文件末尾: ``` [mysqld] basedir=/usr/local/mysql datadir=/usr/local/mysql/data socket=/var/run/mysqld/mysqld.sock ``` 创建 MySQL 数据库文件存储目录: ``` sudo mkdir -p /usr/local/mysql/data sudo chown -R mysql:mysql /usr/local/mysql sudo chmod 755 /etc/init.d/mysql.server ``` 9. 初始化 MySQL 使用以下命令初始化 MySQL: ``` sudo /usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data ``` 10. 启动 MySQL 使用以下命令启动 MySQL: ``` sudo service mysql.server start ``` 11. 设置 MySQL 密码 使用以下命令设置 MySQL 密码: ``` sudo /usr/local/mysql/bin/mysql_secure_installation ``` 12. 测试 MySQL 使用以下命令连接 MySQL: ``` mysql -uroot -p ``` 输入密码后,如果能够成功进入 MySQL 控制台,则说明安装成功。 以上就是 MySQL 8.0.23 码编译安装的全部步骤,希望对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值