MySQL源码编译需装齐四类依赖:C++编译器、CMake工具链、SSL支持库、压缩/字符集基础库;Ubuntu/Debian与CentOS/RHEL包名不同,装错将卡在cmake阶段报NOTFOUND。MySQL源码编译前必须装齐的依赖包缺依赖是编译失败最常见原因,不是"少一个",而是常缺四类:C++编译器、CMake工具链、SSL支持库、压缩/字符集基础库。Ubuntu/Debian和CentOS/RHEL的包名不一致,装错就卡在cmake阶段报一堆NOTFOUND。Ubuntu 22.04+:sudo apt install build-essential cmake libssl-dev libncurses5-dev liblz4-dev libzstd-dev zlib1g-devCentOS 8+:sudo dnf install gcc-c++ cmake openssl-devel ncurses-devel lz4-devel zstd-devel zlib-devel特别注意libncurses5-dev(Ubuntu)不能用libncurses6-dev替代,MySQL 8.0.x仍硬依赖v5 ABI;CentOS上ncurses-devel通常OK,但若报term.h not found,要确认是否装了完整版(非最小安装)别跳过zstd-devel和lz4-devel------MySQL默认启用这些压缩算法,关掉它们要加-DENABLED_LOCAL_INFILE=OFF -DWITH_ZSTD=OFF -DWITH_LZ4=OFF,但生产环境不建议cmake命令里最关键的几个开关参数MySQL源码不提供configure脚本,全靠cmake控制构建行为。参数写错,轻则编译出错,重则装完连mysqld都起不来------比如默认用mysql用户运行,但系统没这个用户就会静默失败。基础路径与用户:cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_USER=mysql ..(..别漏)必须指定存储引擎:-DDEFAULT_STORAGE_ENGINE=InnoDB,否则默认是MyISAM,且后续无法通过配置文件切换字符集要显式设:-DDEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_0900_ai_ci,不设就用latin1,连建库都可能乱码禁用测试套件省时间:-DENABLE_DOWNLOADS=OFF -DINSTALL_TESTDATA=OFF,否则cmake会尝试下载Boost,网络差时卡死make编译时内存和线程踩坑点make -j$(nproc)看着快,但在8GB内存以下机器上大概率OOM,cc1plus进程被kill,日志只显示internal compiler error,根本看不出是内存不够。 arXiv Xplorer ArXiv 语义搜索引擎,帮您快速轻松的查找,保存和下载arXiv文章。
相关推荐
SunnyDays10115 小时前
Python操作Excel批注:从基础添加到高级自定义的完整指南Elastic 中国社区官方博客5 小时前
Elastic 线下 Meetup 将于 2026 年 7 月 26 号下午在深圳举行独隅5 小时前
PyTorch自动微分模块:从原理到实战一YL200404265 小时前
【Redis实战篇】秒杀实现方案(以优惠券秒杀为例)DIY源码阁5 小时前
JavaSwing宿舍管理系统 - MySQL版cfm_29145 小时前
MySQL8.0 InnoDB ClusterkTR2hD1qb5 小时前
Claude Code Skill的介绍与使用汤米粥6 小时前
python学习——核心语法三一 乐6 小时前
汽车租赁|基于SprinBoot+vue的汽车租赁管理系统(源码+数据库+文档)