如何在Linux上源码编译安装MySQL_CMake配置与依赖包安装

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文章。

相关推荐
_Jimmy_7 分钟前
Python 协程库如何使用以及有哪些使用场景
python
aqi0029 分钟前
15天学会AI应用开发(十七)使用LangGraph实现会话记忆功能
人工智能·python·大模型·ai编程·ai应用
Elastic 中国社区官方博客35 分钟前
如何比较两个 Elasticsearch 索引并找出缺失的文档
大数据·运维·数据库·elasticsearch·搜索引擎
第一程序员1 小时前
Rust Agent 子进程执行:Command 之前,先定义输入和超时
python·rust·github
DLYSB_1 小时前
生命通道:如何用 HIS 医疗系统直连网络声光终端,打造“零延误”的危急值响应网关?
java·网络·数据库·报警灯
儒雅的大叔1 小时前
MySQL数据库InnoDB数据恢复工具使用总结
数据库·mysql·adb
skywalk81631 小时前
设计并实现段言的 C FFI 绑定机制 @Trae
c语言·开发语言·python·编程
weixin_BYSJ19871 小时前
SpringBoot + MySQL 乒乓球运动员信息管理系统项目实战--附源码04954
java·javascript·spring boot·python·django·flask·php
观远数据1 小时前
ChatBI选型对比:从意图识别到SQL修复,六个维度打分决定是否值得投产
数据库·人工智能·sql
嘉&年华2 小时前
【第008篇】通过dexp和dimp命令导出和导入dmp文件(适用于达梦数据库)
数据库·sql