MAC 下编译调试 MySQL8.0 源码

MAC 下编译调试 MySQL8.0 源码

最近遇到几个关于 MySQL 死锁的问题,但是查看网上的资料发现并不能解决我遇到的问题,于是决定从源码寻找答案,所以在这里记录一下自己编译 MySQL 源码的过程。

环境配置如下:

  • macOS Ventura 版本 13.1
  • CLion 2022.2.4
  • MySQL version: 8.0.31

1 编译 MySQL 源码

1.1 下载源码

我们可以直接从官方的 GitHub 上下载最新的源码:

# 进入你要放源码的文件夹
cd ~/CLionProjects
# 下载源码
git clone https://github.com/mysql/mysql-server.git
# 如果下载地址比较慢的话,可以使用 gitee 下载
git clone https://gitee.com/mirrors/mysql-server.git

1.2 配置 CLion

下载好源码之后,我们就可以使用 CLion 打开我们的 MySQL 源码

打开后需要先设置工具链,如图所示:
工具链
在这里我们使用 CLion 自带的 CMake 就行了,不需要自己去安装。
接着我们需要配置 CMake 参数:
在这里插入图片描述

在 CMake 选项那里,填入如下内容:

-DDOWNLOAD_BOOST=1
-DWITH_BOOST=~/CLionProjects/mysql-server/boost
-DCMAKE_BUILD_TYPE=Debug
-DCMAKE_INSTALL_PREFIX=~/CLionProjects/mysql-server/build_out
-DMYSQL_DATADIR=~/CLionProjects/mysql-server/build_out/data
-DSYSCONFDIR=~/CLionProjects/mysql-server/build_out
-DMYSQL_UNIX_ADDR=~/CLionProjects/mysql-server/build_out/data/mysql.sock
-DMYSQL_MAINTAINER_MODE=false

其中比较重要的有:

  • DDOWNLOAD_BOOST: 为 1 则会下载 boost
  • DWITH_BOOST: 指定 boost 路径,可以直接指向源码文件夹下的 boost 文件夹;
  • DCMAKE_BUILD_TYPE: 表示是 debug,方便后续代码调试;
  • DCMAKE_INSTALL_PREFIX: 表示编译状态的路径,选择源码文件夹之外的一个自建的 build_out 文件夹
  • DMYSQL_DATADIR:表示 MySQL 默认的数据目录,选择 build_out 文件夹下的 data 文件

点应用配置后,CLion 就会自动帮我们编译,只需要静静等待编译完成就行了。

2 调试 MySQL 源码

如果 CLion 的 CMake 执行成功后,就会出现对应的 Run / Debug Configurations 选项,如下所示:
在这里插入图片描述
我们找到名称为 mysqld 的选项,它就是 MySQL Server 启动的选项。可以先用该选项执行 MySQL数据库目录的初始化操作,生成对应的配置文件和用户名密码,然后再使用该选项来启动 MySQL Server。要注意,两个操作对应的参数不一样。

初始化的参数如下:

--initialize-insecure --user=mysql

然后再使用下面参数启动:

 --user=mysql

最后使用登录命令进行登录,直接回车就可以,因为我们初始化的时候并没有设置密码

mysql -uroot -p

然后我们就可以在 CLion 上打上断点,对 MySQL 进行调试了。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是在Red Hat Enterprise Linux Server release 7.6上源码编译安装MySQL 8.0.X的步骤: 1. 下载MySQL源码包并解压缩: ```shell wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.18.tar.gz tar -zxvf mysql-8.0.18.tar.gz ``` 2. 安装编译MySQL所需的依赖包: ```shell yum install -y cmake gcc gcc-c++ ncurses-devel openssl-devel bison ``` 3. 进入MySQL源码目录,创建一个用于编译的目录: ```shell cd mysql-8.0.18 mkdir build cd build ``` 4. 运行cmake命令生成Makefile文件: ```shell cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DMYSQL_DATADIR=/usr/local/mysql/data \ -DSYSCONFDIR=/etc \ -DWITH_MYISAM_STORAGE_ENGINE=1 \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_MEMORY_STORAGE_ENGINE=1 \ -DWITH_READLINE=1 \ -DENABLED_LOCAL_INFILE=1 \ -DMYSQL_TCP_PORT=3306 \ -DWITH_SSL=system \ -DWITH_ZLIB=system \ -DWITH_LIBEDIT=1 \ -DDEFAULT_CHARSET=utf8mb4 \ -DDEFAULT_COLLATION=utf8mb4_general_ci ``` 5. 运行make命令进行编译: ```shell make ``` 6. 运行make install命令进行安装: ```shell make install ``` 7. 配置MySQL环境变量: ```shell echo 'export PATH=$PATH:/usr/local/mysql/bin' >> /etc/profile source /etc/profile ``` 8. 初始化MySQL: ```shell cd /usr/local/mysql bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data ``` 9. 启动MySQL服务: ```shell bin/mysqld_safe --user=mysql & ``` 10. 修改MySQL的root用户密码: ```shell bin/mysqladmin -u root password 'new-password' ``` 以上是在Red Hat Enterprise Linux Server release 7.6上源码编译安装MySQL 8.0.X的步骤。如果您遇到了问题,可以参考MySQL官方文档或者在MySQL社区寻求帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值