MySQL8.4.2源码在MacOS+Clion上的单步调试

两年前我写了一篇文章:MySQL5.7源码在MacOS+Clion上的单步调试

今天想在已重装过的MAC电脑上重新走一遍流程,但是遇到了一些问题,最终决定在电脑上编译MySQL8.4.2版本的源码

遇到的问题

在CMake环节遇到了如下报错

CMake Error at cmake/ssl.cmake:273 (MESSAGE):
  SSL version must be at least 1.1.1
Call Stack (most recent call first):
  CMakeLists.txt:603 (MYSQL_CHECK_SSL)

-- Configuring incomplete, errors occurred!

而我的openssl是通过brew install openssl命令自动安装的,其版本是3.4.0

这里有些纳闷,按理说3.4.0比1.1.1高,难道不能适配?

看下MySQL5.7.40中CMake的源码(文件:cmake/ssl.cmake)

    # Static SSL libraries? we require at least 1.1.1
    IF(STATIC_SSL_LIBRARY OR (WIN32 AND WITH_SSL_PATH))
      IF(OPENSSL_VERSION VERSION_LESS "1.1.1")
        RESET_SSL_VARIABLES()
        MESSAGE(FATAL_ERROR "SSL version must be at least 1.1.1")
      ENDIF()
      SET(SSL_DEFINES "-DHAVE_STATIC_OPENSSL")
    ENDIF()

这里就不是很清楚了,OPENSSL_VERSION VERSION_LESS “1.1.1”,这句话到底是如何判断的,猜测可能只对1.x版本有效,对于3.x版本会直接认为不兼容

于是乎我希望在本地安装openssl1.1版本,遇到了以下报错

➜  mysql-5.7.40 brew install openssl@1.1                                                                                                                                            
Error: openssl@1.1 has been disabled because it is not supported upstream!

查了下维基百科,目前openssl1.1.1版本已经不维护了。原文链接:https://zh.wikipedia.org/wiki/OpenSSL

在这里插入图片描述

为什么选择MySQL源码8.4.2版本

也就是说,我在本地应该只能安装openssl 3开头的版本,那么MySQL5.7版本的源码可能有些落后了,我决定编译更高版本的MySQL源码

源码下载链接:https://downloads.mysql.com/archives/community/

最终决定选择8.4.2版本的源码
在这里插入图片描述
原因是8.4.2版本是8开头的版本里的最后一个版本,按理说应该是feature最多、bug相对之前的版本最少得一个版本,而9开头的版本还刚开始,可能不太合适学习源码
在这里插入图片描述

编译过程中与5.7版本的差异

由于在MySQL5.7源码在MacOS+Cli

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值