首页 > 数据库 >计算云上对mysql源码debug

计算云上对mysql源码debug

时间:2024-05-25 16:30:50浏览次数:28  
标签:gcc cmake 源码 build install 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
创建文件 .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}"
        }
    ]
}

点击run and bebug 启动mysqld

最后需要在计算云上安装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文件,重新配置编译初始化。

## window下vscode连接上远程

连接上远程后进入mysql源码目录, run and debug 创建mysqld文件夹.vscode

标签:gcc,cmake,源码,build,install,mysql,debug,云上
From: https://blog.csdn.net/weixin_43381707/article/details/139198825

相关文章

  • 一键启动,无限创作:AI数字人系统源码,轻松制作属于你的数字人模型!
    数字人,这一新兴概念,正逐渐渗透到我们生活的方方面面。它不仅仅是技术的创新,更是对传统服务模式的颠覆。AI数字人系统源码(源码:ai6ai69)的部署,为企业和个人提供了一个全新的创作平台,让每个人都能轻松打造属于自己的数字人模型。一、AI数字人系统源码部署所需配置在部署AI数字人......
  • 【全开源】多场馆场地预定小程序源码(ThinkPHP+FastAdmin+UniApp)
    场馆场地预定小程序源码一款基于ThinkPHP+FastAdmin+UniApp开发的多场馆场地预定小程序,提供运动场馆运营解决方案,适用于体育馆、羽毛球馆、兵乒球馆、篮球馆、网球馆等场馆(高级版)......
  • 【全开源】教育系统源码(支持微信小程序+移动端H5+安卓APP+IOS-APP)
    构建智慧教育的基石在当今信息化快速发展的时代,教育系统正面临着前所未有的变革。西陆教育系统源码,作为这一变革的先锋力量,以其卓越的性能和灵活性,为教育机构提供了全新的解决方案。一、源码的力量:定制化与可扩展性西陆教育系统源码的核心优势在于其高度的定制化和可扩展......
  • Redis 源码学习记录:集合 (set)
    无序集合Redis源码版本:Redis-6.0.9,本篇文章无序集合的代码均在intset.h/intset.c文件中。Redis通常使用字典结构保存用户集合数据,字典键存储集合元素,字典值为空。如果一个集合全是整数,则使用字典国语浪费内存。为此,Redis设计了intset数据结构,专门用来保存整数......
  • arthas:Java调试利器,线上Debug不是梦
    目录前言一、Arthas是什么?二、Arthas能解决啥问题?三、Arthas两种安装、启动方式1、jar包启动2、在线安装3、远程连接:四、Arthas命令使用1、Dashboard命令2、Thread(线程监控)3、JVM(jvm实时运行状态,内存使用情况等)4、trace(当前方法内部调用路径,路径上每个节......
  • 【制作100个unity游戏之27】使用unity复刻经典游戏《植物大战僵尸》,制作属于自己的植
    最终效果系列导航文章目录最终效果系列导航前言素材简单搭建环境豌豆射手向日葵源码结束前言在游戏界,有些作品以其独特的创意和精彩的游戏体验,成为了经典中的经典。而《植物大战僵尸》就是其中的佼佼者,它以其独特的塔防玩法和富有趣味性的设计,吸引了全球无数玩家......
  • 【计算机毕业设计】基于SSM++jsp的实验室耗材管理系统【源码+lw+部署文档】
             目录第1章绪论1.1课题背景1.2课题意义1.3研究内容第2章开发环境与技术2.1MYSQL数据库2.2JSP技术 2.3SSM框架第3章系统分析3.1可行性分析3.1.1技术可行性3.1.2经济可行性3.1.3操作可行性3.2系统流程3.2.1操作流程3.2.2......
  • Springboot计算机毕业设计信息学院网络工程党支部小程序【附源码】开题+论文+mysql+程
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景在信息化高速发展的今天,党建工作也需要与时俱进,利用信息技术手段提升工作效率和影响力。信息学院网络工程党支部作为学院党建工作的前沿阵地,面临着如......
  • JAVA计算机毕业设计基于SpringBoot的在线古玩市场系统的设计与实现(附源码+springboot+
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着互联网的迅猛发展和电子商务的普及,传统行业纷纷寻求数字化转型以适应市场的新需求。古玩市场作为一个历史悠久、文化底蕴深厚的行业,在数字化浪潮......
  • 一对一视频源码,异步中出现了异常该如何处理?
    一对一视频源码,异步中出现了异常该如何处理?js本质上是同步的,是一种单线程语言。诸如浏览器引擎之类的宿主环境使用许多WebAPI,增强了js以与外部系统进行交互并处理与I/O绑定的操作。浏览器中异步操作有:定时器相关的函数、事件、Ajax请求和Promise等。一、定时器的错误处理......