如何在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文章。

相关推荐
消失的旧时光-19431 小时前
SQL 第五篇:SQL 如何真正接入 Spring Boot 项目(企业 Mapper 分层实战)
数据库·spring boot·sql
测试员周周8 小时前
【AI测试智能体】为什么传统测试方法对智能体失效?
开发语言·人工智能·python·功能测试·测试工具·单元测试·测试用例
dfdfadffa8 小时前
如何用模块化方案组织一个可扩展的前端组件库项目
jvm·数据库·python
2301_812539678 小时前
SQL中如何高效实现分组数据的批量更新_利用窗口函数与JOIN
jvm·数据库·python
RSTJ_16258 小时前
PYTHON+AI LLM DAY THREETY-NINE
开发语言·人工智能·python
2501_901200538 小时前
如何实现SQL存储过程存储过程参数标准化_统一命名规范
jvm·数据库·python
运气好好的9 小时前
Golang怎么用embed嵌入SQL文件_Golang如何将SQL迁移文件嵌入Go程序统一管理【技巧】
jvm·数据库·python
AC赳赳老秦9 小时前
政企内网落地:OpenClaw 离线环境深度适配方案,无外网场景下本地化模型对接与全功能使用
java·大数据·运维·python·自动化·deepseek·openclaw
星越华夏9 小时前
python 将相对路径变成绝对路径
python
念何架构之路9 小时前
MySql常见ORM
数据库·mysql