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前端网发表,如需转载,请注明页面地址。
code前端网