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

从源码编译mysql,源程序编译和解释的基本概念

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

本文内容列表:

  • 1、Windows下如何编译或调试MySQL
  • 2.mysql5.6.33源码编译
  • 3.如何编译mysql 5.5

如何在Windows下编译或调试MySQL

只需使用 vs code。

Visual Studio Code

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

安装 LLDB

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

创建完成后,开始安装LLVM

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

安装插件

VS代码自带调试功能。这里我推荐使用LLDB调试器插件。

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

配置调试参数

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

开始调试

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

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

1:变量信息

2:设置焦点变量

3:调用堆栈信息显示 4:设置断点信息,也可以在代码行号之前设置断点

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

6:调试终端输入输出区

断点设置

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

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

远程调试

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

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

远程$ yum install -y llvm-toolset-7

安装完成后,启动lldb -server

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

接下来在VS中添加一个新的配置项代码调试界面。

{

"类型":"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.17/mysql-5.6"/bin.工作台/mysql-服务器“

}

},

程序:本地机还必须复制并加载目标程序的副本。

pid:填写远程主机的mysqld进程ID。

sourceMap:完成mysqld编译的代码路径与本地代码库路径的映射。这样调试时可以结合程序查看代码

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

mysql5.6.33源码编译

重点不在这里,重点是下面的错误:

[ERROR]插件'InnoDB'初始化函数返回错误。

[ERROR]插件'InnoDB'注册为STORAGE ENGINE失败。

[错误] 未知/不受支持的表类型:InnoDB

[错误] 中止

删除您的 datadir 数据目录。重新运行mysql_install_db

如何编译mysql 5.5

先安装cmake和gcc

然后~~~

1、解压mysql文件,tar xf mysql-5.1.51.tar.gz2, cd mysql-5.1.513, #cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql5.1 // 这是你指定安装mysql的位置- DMYSQL_DATADIR=/usr/local/mysql5.6/data -DSYSCONFDIR=/usr/local/mysql5.6/etc -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_DWITH_BLACKHOLE_STORAGE=ENG_DWITH_BLACKHOLE_STORAGE_1FEMA_BLACKHOLE_1F FA ULT_CHAR SET = utf8 - DDEFAULT_COLLATION = utf8_general_ci - DENABLED_LOCAL_INFILE = 1 -DWITH_EXTRA_CHARSETS=all -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock #make #make install

版权声明

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

热门