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文章。
相关推荐
捧 花3 分钟前
FastAPI 基础语法:从一个完整接口理解 Web API 的设计杨云龙UP6 分钟前
Toad for Oracle 调整表空间 Datafile 大小:Usage、Used Pct of Max 与 RESIZE 实战Ming_studying10 分钟前
Python批量压缩图片:支持JPG_PNG_WebP、尺寸限制与CSV报告大熊背10 分钟前
ISP图像处理中大数乘法溢出处理(一)何以解忧,唯有..15 分钟前
Python协程详解:从生成器到async/await的完整指南码域空间22 分钟前
锁住了检查,锁不住延迟——MySQL 读写分离架构下双重检查模式失效实录hhzz23 分钟前
智慧校园13类视频异常检测:数据集与预训练模型全攻略Wang's Blog31 分钟前
PostgreSQL笔记59:行列级权限机制与数据脱敏实践浩腾数字多媒体32 分钟前
如何判断专业电子留言厂家适配条件?会编程的吕洞宾1 小时前
DeepAgents In Action学习(Third)