当前位置: 首页 > wzjs >正文

免费网站建站avcomseo软件服务

免费网站建站avcom,seo软件服务,f1意大利站最新排名,怎样创建网站信息平台完全理解你的感受!MySQL 源码本地调试确实是一个“坑多”的过程,尤其是当你第一次尝试从源码构建和调试 MySQL 时。但别担心,我来一步步帮你梳理整个流程,并提供一个详细、可操作的指南,让你可以顺利跑起来 MySQL 源码…

完全理解你的感受!MySQL 源码本地调试确实是一个“坑多”的过程,尤其是当你第一次尝试从源码构建和调试 MySQL 时。但别担心,我来一步步帮你梳理整个流程,并提供一个详细、可操作的指南,让你可以顺利跑起来 MySQL 源码并进行本地调试。


✅ 目标

  • 在本地(Linux)编译 MySQL 源码
  • 支持调试(Debug)
  • 能运行、能打断点、能单步执行

🛠️ 第一步:准备环境

✅ 推荐系统:

本文以 Ubuntu 为例。

📦 安装依赖包:

sudo apt update
sudo apt install build-essential cmake libncurses-dev \libssl-dev libnuma-dev git gdb valgrind \libboost-all-dev libreadline-dev pkg-config

🌐 第二步:下载 MySQL 源码

你可以选择官方分支或某个版本的源码。

👇 下载官方源码(例如 MySQL 8.0):

git clone https://github.com/mysql/mysql-server.git
cd mysql-server
git checkout 8.0  # 切换到你想要的版本分支

如果你觉得太慢,也可以使用镜像站(如 Gitee)克隆一份加速版。


🧱 第三步:配置 CMake 构建参数(关键步骤)

创建 build 目录并进入:

mkdir build && cd build

然后运行如下 支持调试的 CMake 配置命令

cmake .. \-DCMAKE_BUILD_TYPE=Debug \-DFORCE_INSOURCE_BUILD=1 \-DWITH_DEBUG=1 \-DWITH_SSL=system \-DWITH_BOOST=/tmp/mysql_boost \-DDOWNLOAD_BOOST=1 \-DMYSQL_DATADIR=/home/$(whoami)/mysql_data \-DSYSCONFDIR=/home/$(whoami)/mysql_conf \-DDEFAULT_CHARSET=utf8mb4 \-DDEFAULT_COLLATION=utf8mb4_unicode_ci

⚠️ 如果提示 Boost 缺失,请确保 -DDOWNLOAD_BOOST=1 已设置,并等待自动下载。


🔨 第四步:开始编译(耗时较长)

make -j$(nproc)

或者只构建 mysqld 主程序,加快速度:

make mysqld

🗃️ 第五步:初始化数据库

mkdir -p ~/mysql_data ~/mysql_conf
cd ..
scripts/mysqld_pre_systemd_install --basedir=$(pwd) --datadir=~/mysql_data

这会生成默认的配置文件和 root 用户权限。


▶️ 第六步:启动 MySQL 并调试

启动方式一:直接运行(带调试信息)

cd build/sql
gdb ./mysqld

在 GDB 中运行:

run --user=$(whoami) --basedir=$(dirname $PWD) --datadir=~/mysql_data

启动方式二:后台运行

./mysqld --user=$(whoami) --basedir=$(dirname $PWD) --datadir=~/mysql_data &

🪲 第七步:附加调试器(GDB)

如果你已经启动了 mysqld,可以用 GDB 附加进程:

ps aux | grep mysqld
gdb -p <pid>

然后就可以打断点、查看堆栈、变量等。


🧪 常见问题排查

问题解决方案
找不到 OpenSSL确保安装了 libssl-dev,并加上 -DWITH_SSL=system
Boost 报错加上 -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/tmp/mysql_boost
初始化失败检查数据目录权限:chmod -R 700 ~/mysql_data
编译很慢只 make mysqld,不要全量 make
CMake 缓存旧删除 build 文件夹重新配置

💡 小技巧

  • 使用 VS Code + Remote 开发插件 + GDB 插件,体验更佳。
  • 设置断点建议从 main() 函数开始,逐步深入。
  • 如果你只想调试某一部分(如 SQL 解析、事务引擎),可以只构建对应模块。
  • 使用 make VERBOSE=1 查看完整编译命令。

📌 总结:跑起来 MySQL 源码的关键点

步骤关键点
环境准备安装所有开发库
获取源码使用 Git 克隆官方仓库
CMake 配置启用 Debug、Boost、SSL
编译使用 -j$(nproc) 加速
初始化创建数据目录并初始化
调试使用 GDB 或 IDE 调试器
报错处理清理缓存、检查依赖路径

问题1 openssl问题

CMake Error at cmake/ssl.cmake:84 (MESSAGE):Please install the appropriate openssl developer package.Call Stack (most recent call first):cmake/ssl.cmake:332 (FATAL_SSL_NOT_FOUND_ERROR)CMakeLists.txt:1826 (MYSQL_CHECK_SSL)

解决:使用的是自定义 OpenSSL(自己编译的)

git clone https://github.com/openssl/openssl.git
cd openssl
git checkout OpenSSL_1_1_1w  # 或其他稳定分支
./Configure linux-x86_64 --prefix=/usr/local/openssl
make -j$(nproc)
sudo make install

如果是macbook执行./Configure linux-x86_64 --prefix=/usr/local/openssl 会报错

crypto/aes/aesni-mb-x86_64.s:289:8: error: invalid alignment value
.align 32^
crypto/aes/aesni-mb-x86_64.s:387:8: error: invalid alignment value
.align 32^
crypto/aes/aesni-mb-x86_64.s:494:8: error: invalid alignment value
.align 32^
crypto/aes/aesni-mb-x86_64.s:558:1: error: unknown directive
.size aesni_multi_cbc_decrypt,.-aesni_multi_cbc_decrypt
^
crypto/aes/aesni-mb-x86_64.s:559:1: error: unknown directive
.type aesni_multi_cbc_encrypt_avx,@function
^
crypto/aes/aesni-mb-x86_64.s:560:8: error: invalid alignment value
.align 32^
crypto/aes/aesni-mb-x86_64.s:716:8: error: invalid alignment value
.align 32^
crypto/aes/aesni-mb-x86_64.s:1012:1: error: unknown directive
.size aesni_multi_cbc_encrypt_avx,.-aesni_multi_cbc_encrypt_avx
^
crypto/aes/aesni-mb-x86_64.s:1014:1: error: unknown directive
.type aesni_multi_cbc_decrypt_avx,@function
^
crypto/aes/aesni-mb-x86_64.s:1015:8: error: invalid alignment value
.align 32^
crypto/aes/aesni-mb-x86_64.s:1190:8: error: invalid alignment value
.align 32^
crypto/aes/aesni-mb-x86_64.s:1507:1: error: unknown directive
.size aesni_multi_cbc_decrypt_avx,.-aesni_multi_cbc_decrypt_avx
^
make[1]: *** [crypto/aes/aesni-mb-x86_64.o] Error 1
make: *** [all] Error 2

这是在编译 OpenSSL 源码时,汇编文件 aesni-mb-x86_64.s 出现了问题。这类错误通常发生在 不同平台或工具链(Assembler / 编译器)对汇编语法的支持不一致 的情况下。
可以禁用所有汇编优化,使用纯 C 实现:

./Configure --prefix=/usr/local/openssl darwin64-arm64-cc no-asm
make -j$(nproc)
sudo make install

有时旧配置干扰会导致问题,请先执行:

make clean
make -j$(nproc)
sudo make install

然后设置环境变量:

export PATH="/usr/local/openssl/bin:$PATH"
export LDFLAGS="-L/usr/local/openssl/lib"
export CPPFLAGS="-I/usr/local/openssl/include"

问题2

CMake Error at cmake/bison.cmake:137 (MESSAGE):Please update to version 3.0.4 or higher
Call Stack (most recent call first):CMakeLists.txt:1967 (INCLUDE)

说明:项目在构建时检测到你的 bison 版本低于 3.0.4,而该项目(很可能是 MySQL、MariaDB 或其他数据库项目)要求至少使用 bison 3.0.4 或更高版本。

cd /tmp
curl -O http://ftp.gnu.org/gnu/bison/bison-3.8.2.tar.gz
tar zxpf bison-3.8.2.tar.gz
cd bison-3.8.2
./configure --prefix=/usr/local/bison
make -j$(nproc)
sudo make install
export PATH="/usr/local/bison/bin:$PATH"# 清理构建目录
rm -rf build/
mkdir build && cd build

有些项目会显式指定 BISON_EXECUTABLE,你也可以这样强制使用新版(非必须):

cmake .. -DBISON_EXECUTABLE=/usr/local/bin/bison
http://www.dtcms.com/wzjs/299179.html

相关文章:

  • 网站建设一般怎么付款百度代理公司怎么样
  • 北京专业网站建设公司哪家好站长工具seo综合查询权重
  • 常州 微网站百度网盘下载官网
  • 做汽车租赁主要的网站seo网站排名推广
  • 网站开发实施步骤和说明app注册推广平台
  • 做视频网站要什么seo关键词排名网络公司
  • 做家电维修网站千锋教育学费
  • 做seo 教你如何选择网站关键词seo网站推广免费
  • 专业网站制作公司排行广点通投放平台登录
  • 汝州建设局网站电脑零基础培训学校
  • 网站建设可以一次性进损益吗网站建设的推广渠道
  • 网站建设教学视频公司网址有哪些
  • 用asp做旅游网站源云推广
  • 网站建设百度贴吧临沂色度广告有限公司
  • 如何做介绍一门课程的网站市场调研的内容
  • 网站建设教程软件建站系统主要包括
  • 公司网站建立流程百度竞价点击一次多少钱
  • 做网站运营用什么软件石家庄网络推广
  • 帮人做海报的网站谷歌搜索引擎香港免费入口
  • 聪明的上海网站柳州今日头条新闻
  • 还有哪些网站可以做淘宝活动网络文章发布平台
  • 建设西安网站关键词优化的发展趋势
  • 网站怎么做返回主页按钮怎样宣传自己的产品
  • 网站后台尺寸一般做多大的南宁seo推广公司
  • 阿里网站建设费用seo培训机构哪家好
  • 做网站什么样的域名好搜客
  • 哪里网站备案长春网站开发
  • asp做网站很少sem是什么牌子
  • 嘉定西安网站建设微营销平台
  • 注册外国网站百度投诉中心24人工客服