Code前端首页关于Code前端联系我们

mysql调试功能,如何调试mysql功能

terry 2年前 (2023-09-30) 阅读数 40 #Mysql
文章标签 Mysql

本文内容列表:

  • 1、mysql中如何自定义函数,如何调用和运行
  • 2.如何调用mysql中的自定义函数?
  • 3、Windows下编译或调试MySQL

如何自定义mysql中的函数,如何调用和运行

create function 函数名(参数列表)

reurns 返回值类型

函数体

执行方法很简单:

load

** create function 函数名 returns {string| real |integer}

** soname 您定义的动态库位置

发布!

** drop函数名

如何调用mysql中的自定义函数?

调用方式:选择函数名称(参数列表)。

对于mysql中的UDF(自定义函数),可以编写一些方法或者函数,然后调用它们,并且可以在SQL语句中调用它们。

删除函数计算金额

创建函数计算金额(userid INT)返回float(10,2)

开始

声明totalCredits FLOAT;

从credit_user WHERE id = userid中选择SUM(金额)到totalAmount;

返回总金额;

END

请注意,在 UDF 中,您不能定义与数据表中名称相同的列。在 SQL 中,您可以将其执行为 SELECTCalculateAmount(1);称呼。

在 Windows 上编译或调试 MySQL

只需使用 vs code。

Visual Studio 代码

Visual Studio Code(简称VS Code)是微软开发的开源文本编辑器,支持Windows、Linux和macOS操作系统。它支持调试,内置Git版本控制功能,还具有代码完成(类似于IntelliSense)、代码片段、代码重构等开发环境功能。编辑器支持用户自定义配置,例如更改主题颜色、键盘快捷键、编辑器属性和其他参数。它还支持扩展,并在编辑器中具有内置的扩展管理功能。

安装 LLDB

LLDB 是 LLVM 编译器的一部分。推荐使用Homebrew安装LLVM工具集。不建议使用系统自带的LLDB。安装前必须创建证书,否则无法安装。步骤如下:

创建完成后,开始安装LLVM

brew install llvm --with-python@2 --with-lldb

安装插件

VS Code自带调试功能。这里我推荐使用LLDB Debugger插件。

接下来,配置项目的调试参数。

配置调试参数

使用VS Code打开MySQL源码文件夹,选择侧边栏的debug栏,添加配置,program输入程序路径进行调试,这里选择你编译的mysqld路径,args输入程序的启动地点。所需的参数通常在 mysqld 配置文件中指定。现在配置完成了,是不是很简单呢?

开始调试

单击开始按钮。如果启动后没有设置断点,mysqld将正常启动。如果断点被触发,会显示如下图。

整个调试窗口实际上分为六个部分,所有的调试操作都在这里完成:

1:显示变量信息

2:设置目标变量

3:显示调用堆栈信息

4 :设置断点信息,也可以在代码行号之前设置断点

5:代码显示区域,上面有调试按钮,包括继续/步过/步入/步出/重启/停止

6:调试终端输入输出区域

断点设置

在代码行号前单击即可为该行为设置断点,或根据条件设置断点。以ConditionalBreakpoint设置为例。程序启动时,会根据你设置的条件表达式来决定是否触发断点。

条件断点用于当目标变量达到某个条件时触发断点,并跳过其余部分继续执行。例如,当设置一个变量等于目标表的名称时会触发断点,并跳过其他表。相对函数名断点省去了很多手动跳过操作。

远程调试

如果你想在远程Linux服务器上调试MySQL,上面的方法不适合。这种情况下就需要远程调试。 lldb和gdb都支持远程调试。这里我们以lldb为例。

需要先在远程主机上安装lldb,使用yum安装,源地址在这里

remote$ yum install -y llvm-toolset-7

安装完成后启动lldb - server

remote$ /opt/rh/llvm-toolset-7/root/usr/bin/lldb-serverplatform --listen "*:9191" --server

然后在 US Code 调试中添加新的配置项界面。

{

"类型":"lldb",

"请求":"附加",

"名称":"远程附加",

"程序":"~/mysql5626/ usr/local/mysql/bin/mysqld",

"pid 'target_pid',

"initCommands": [

"平台选择远程linux",

"平台连接 connect:/ /remote_host :9191"

],

"sourceMap": {

"/export/home/pb2/build/sb_0-15908961-1436910670.17/mysql-5.6.26":"/Users/hongbin/workbench/ mysql-server"

}

},

程序:本机还应复制并加载目标程序的副本

pid:输入远程主机的mysqld进程ID

sourceMap:填充 mysqld 编译后的代码路径和本机代码库路径的映射,以便调试时可以结合程序查看代码

注意:不要忘记将代码切换到与之前一致的分支调试前的目标程序版本

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

热门