新手如何调试 MySQL?看这一篇就够了

新手如何调试 MySQL?看这一篇就够了,第1张

前几天看到姜老师的旧文 用 VSCode 编译和调试 MySQL,每个 DBA 都应 get 的小技能[1] , 文末留了一个思考题,如何修改源码,自定义版本,使得 select version() 输出自定义内容

调试过程参考 macOS VSCode 编译调试 MySQL 5.7[2]

内部 Item 对象参考 从SQL语句到MySQL内部对象[3]

源码面前没有秘密,建义对 DB 感兴趣的尝试 debug 调试。本文环境为 mac + vscode + lldb

vscode 插件:

mysql 源码:

补丁: MySQL <= 8.0.21 需要对 cmake/mysql_version.cmake 文件打补丁 (没有严格测试所有版本)

创建 cmake-build-debug 目录,后续 mysql 编译结果,以及启动后生成的文件都在这里

在 mysql 工程目录下面创建 .vscode/settings.json 文件

内容没啥好说的,都是指定目录及 boost 配置,其中 WITH_DEBUG 打开 debug 模式,会在 /tmp/debug.trace 生成 debug 信息

View -> Command Palette -> CMake: Configure 执行后生成 cmake 配置

View -> Command Palette -> CMake: Build 编译生成最终 mysql 相关命令

发现老版本编译很麻烦,各种报错,mysql 5.7 代码量远超过 5.5, 只能硬着头皮看 5.7

首先初始化 my.cnf 配置,简单的就可以,共它均默认

初始化数据文件,非安全模式,调试用

由于用 vscode 接管 mysql, 所以需要配置 .vscode/launch.json

然后点击 run and debug mysqld

mysql 启动,看到输出日志无异常,此时可以用 mysql-client 连接

首先在 sql_parser.cc:5435 处打断点

mysql_parse 是 sql 处理的入口,至于 tcp connection 连接先可以忽略

执行上述 sql 自动跳转到断点处, Step Into , Step Over , Step Out 这些调试熟悉下即可

接下来分别调用主要函数: mysql_execute_command , execute_sqlcom_select , handle_query , select->join->exec() , Query_result_send::send_data , Item::send , Item_string:val_str , Protocol_text::store , net_send_ok

启动 mysql 时 init_common_variables 会初始化一堆变量,其中会调用 set_server_version 生成版本信息,修改这个就可以

看好条件编译的是哪块,修改即可, 重新 CMake: Build 编译再运行

这里不做过深分析,简单讲

sql_yacc.cc 函数 PTI_function_call_generic_ident_sys 解析 sql, 识别出 version() 是一个函数调用

find_native_function_builder 查找 hash 表,找到对应 version 函数注册的单例工厂函数

mysql 启动时调用 item_create_init 将这些函数 builder 注册到 hash 表 native_functions_hash

MySQL 代码太庞大,5.1 大约 100w 行,5.5 130w 行,5.7 以后 330w 行,只能挑重点读源码。最近很多群里的人在背八股,没必要,有那时间学着调试下源码,读读多好

原文出处:https://mp.weixin.qq.com/s/lJqb0kMtnAUmqUIWCShkIQ

一、首先一步就是下载vscode

步骤也是特别的简单,就是直接next,就好。

二、使用步骤

1.先在电脑里面的随便一个盘新建一个文件夹

如图所示

然后双击红色圈住的地方,全删除后,输入cmd

就会出现这个,直接在命令框中输入code

在黄色圈圈住的地方点击,然后就新建一个文件夹,网页的后缀就是html,css的后缀就是css

最后文件夹就会出现这个网页

如何在网页中输入

1.vscode提供了一个很友好的方式

直接使用英文状态下的shift+!

然后就会出现html的基本格式

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<title>Document</title>

</head>

<body>

</body>

</html>

1

2

3

4

5

6

7

8

9

10

11

1

2

3

4

5

6

7

8

9

10

11

<body>

</body>

1

2

3

1

2

3

在上面的框架中就能输入想在网页上显示的东西了

2.预览网页的方法

直接用Alt+B就可以实现预览了。

3.如果想要学习具体建网页的方法,菜鸟教程会是一个不错的选择

总结

以上就是介绍简单建网页的一个方法,如果有不懂或者错误的地方,欢迎留言,大家一起进步

点击阅读全文

打开CSDN,阅读体验更佳

上课摸鱼必备 -- Vscode网页版的搭建教程_Calvin Haynes的博客-CSDN...

(一)运行效果 这个Vscode在线版是运行在我买的阿里云学生机的9999端口的,毕竟9.9一月,对于学生党很友好,我的个人博客也搭在上面的,性能一般,但是也很够用了。 (二)基础配置 1 - 下载code-server到服务器上 进到服务器的SSH中,这个...

继续访问

Windows11下载安装vscode并编写第一个页面_小花皮猪的博客_v...

hello vscode! 然后测试代码是否打开网页 打开方式1:在工作目录双击打开(不推荐) 打开方式2:使用vscode打开(推荐) 需要按照一个插件,参考我的这篇文章 https://blog.csdn.net/weixin_46713508/article/details/126800198...

继续访问

(网页开发/前端)配置VsCode,让您拥有更舒适的开发环境

利用vscode支持的各种扩展,我们能极大优化编程体验

继续访问

制作一个简单HTML个人网页网页——人物介绍梵高(HTML+CSS)

HTML5期末考核大作业源码 包含 个人、 美食、 公司、 学校、 旅游、 电商、 宠物、 电器、 茶叶、 家居、 酒店、 舞 蹈、 动漫、 服装、 体育、 化妆品、 物流、 环保、 书籍、 婚纱、游戏、 节日、 戒烟、 电影、 摄影、 文化、 家 乡、 鲜花、 礼品、 汽车、 其他 可满足大学生网页大作业网页设计作业需求, 喜欢的可以下载! 原生(HTML+CSS+JS),网页作品代码简单,可使用任意HTML编辑软件(如:`Dreamweaver、HBuilder、Vscode 、Sublime 、 Webstorm、Text 、Notepad++` 等任意html编辑软件进行运行及修改编辑等 *** 作) HTML静态网页设计作业,采用DIV+CSS布局,共有多个页面,使用CSS排版比较丰富,色彩鲜明有活力,顶部导航及底部 区域背景色为100%宽度。都是给学生定制的都符合学生考试期末作业的水平,有的有js,有的视频+音乐+flash的等 元素的插入。 【查看更多源码地址】:https://blog.csdn.net/VX_WJ88950106?type=blog

使用VScode写一个html页面

本文给大家分享的是使用vscode编写的第一个html页面的全过程,非常的简单,菜鸟看看就行,高手请略过

vscode 打开网页_简单粗暴,直接教你上手制作网页—前端开发入门

首先我要说学习前端网页制作其实很简单!今天我带着你踏入前端开发的大门,我不会给大家说一些难懂的概念上的东西,有些知识其实不必知道,学习之后再慢慢了解也是可以的。简单粗暴,直接让你上手就完事了!先大致了解一下HTML的构成简单的说HTML网页的构成基本可以理解为是由标签、样式和属性组成的标签:可以理解为是组成网页的框架或是盒子。样式:决定标签的外观(大小、宽高等等)属性:标签本身自带的一些样式或是功...

继续访问

网页开发工具VSCode的使用

网页开发工具VSCode的使用

继续访问

热门推荐 VSCode设置网页代码实时预览

目录 一、设置描述 二、 *** 作步骤 一、设置描述 1.VSCode作为一款很不错的开发软件,相比DW更小巧,用来测试前端特别不错,那么我们平时开发网页发现只有写完代码,然后保存,接下来到浏览器中刷新查看效果,然后不停重复,我们发现很多时间就这样浪费到了这三个步骤上。 2.其实我们可以在VSCode中配置一个网页服务器,修改完代码之后只需要保存代码浏览器就可以实时预览 二、...

继续访问

vscode 创建页面

vscode 创建页面 <!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0">&lt

继续访问

vscode新建自己第一个页面

vue基础:vscode新建第一个页面

继续访问

用VSCode写简历表

三.效果图 当然大家可以改掉里面的文字哦~

继续访问

最新发布 使用vscode编写第一个Hello World程序页面详细步骤

前言: 对于编程人员来说,第一个程序几乎必写的都是Hello World,也是代表进入了新的学习篇章吧 一、 *** 作步骤 1.打开vscode(如果没有这个软件,可以从我的文章里面看下载教程),文件---->新建文本文件或者使用快捷键:CTRL+N打开 2.文件-->保存 3.选择文件保存位置后,文件的后缀名txt更改为html,然后点击保存 4.vscode里面第一行输入! 注意:这个!一定是英文输入法的才会显示。如果是中文的!这两个感叹号不会显示出来的 8.任意选择一个浏览器打开(我是选择这个web

继续访问

VSCode设置网页代码实时预览的实现

主要介绍了VSCode设置网页代码实时预览的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

VS Code 创建HTML页面教程

由于刚开始学习前端,我乃非专业人士也不知道怎么使用这个软件写出页面,经过四方搜寻写了这个教程,希望大家在学习路上更进一步~ VS Code 创建页面 打开VS Code 点击文件,新建文件 (Ctrl + N) 新建之后一定要先Ctrl + s先保存 在里面输入一个感叹号,选择第一个感叹号,骨架就出来啦~ 接下来我们需要安装一个插件,这样就可以直接右键运行网页 安装这个open in browser, 安装好后记得重启一下软件,然后右击就会有在浏览器中运行的选项。 ...

继续访问

如何用vs code搭建自己的网站

网站 由多个网页组成 HTML:超文本标记语言,专门用来制作网页,用来描述网页的一种语言(例如图片,动画,声音),且不等价于编程语言,个人认为可以理解为由一大堆标签组成 标签 定义:全在<>中,标签几乎都是成对存在,少数是单标签 关系: ①包含 类似父子关系,比如这里的上下俩head ②并列 类似兄弟关系,比如这里的最有左右俩body 基本结构标签 ①<html></html>:这是页面中最高级别的标签,简称根标签 ②<head></he

继续访问

前端新手学习记录2 -使用vscode编写个人网站首页

编写了一个网站首页,参照网上的例子。界面如下 代码如下: <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content="width=device-width,in...

继续访问

vscode+django 搭建自己的个人网站(三) ——创建应用以及基础配置

由于现在大家都在使用mysql数据库来做配置,但是DJANGO却自带了sqllite3数据库,而数据库的转换 *** 作会比较麻烦,所以最后还会利用配置文件来提前修改数据库配置,便于我们后面的数据插入

继续访问

网页版vscode用法简单介绍

网页版vscode用法简单介绍

继续访问

vscode+django 搭建自己的个人网站(五) ——使用markdown编辑器添加数据以及URL与视图

虽然我们可以利用后台来添加数据了,但是像文章这样庞大而且已经通过其他编辑器写好的部分想要添加进去还是比较麻烦的,如何在添加的时候像写文章一样方便呢,这里就可以让我们的后台部分也拥有一个富文本编辑器就好啦,不过由于笔者的博客都是用markdown来写的,所以笔者在这里要添加markdown编辑器

继续访问

vscode风格个人主页源码

源码介绍: 我一直都想再做一次个人主页,因为上一个太过于简约,但是出于灵感枯竭一直没有开始。偶然一次使用vscode的时候,在自己喜欢的主题上做开发总是很有动力,突然就想到了把个人主页做成vscode一样

vscode+django 搭建自己的个人网站(一) ——环境搭建与配置

相对于pycharm,vscode更加的灵活快速,对于小型的项目来说算是一个很好的选择,所以笔者选择使用vscode来搭建django框架实现的个人博客。

linux版vscode列选择设置

1. 打开VSCode,点击“文件”->“首选项”->“设置”;

2. 在“设置”界面中,可以通过搜索栏搜索需要设置的功能,或者直接在左侧的列表中选择需要设置的功能;

3. 在右侧的“设置”中,可以看到每个功能的详细设置,根据自己的需要进行设置即可。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7453077.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-05
下一篇 2023-04-05

发表评论

登录后才能评论

评论列表(0条)

保存