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

相关推荐
听雨入夜几秒前
“同声传译”还是“全文翻译”?为何HotSpot虚拟机仍要保留解释器?
开发语言·python
随风M记忆s5 分钟前
GEE&Python-demo:利用Sentinel-监测北京奥林匹克森林公园年NDVI变化(附Python版)
开发语言·python·sentinel
灯澜忆梦7 分钟前
【MySQL7】多表查询
数据库·sql
Qlittleboy18 分钟前
tp5网站链接不上slqserver,计算机积极拒绝了链接
数据库·sql
软萌萌的126 分钟前
Python零基础从入门到精通详细教程-数据类型
开发语言·windows·python
东北赵四33 分钟前
关于Java泛型的知识点及其相关面试题
java·windows·python
姓蔡小朋友35 分钟前
Java线程并发
java·开发语言·python
海带紫菜菠萝汤39 分钟前
免费在线翻译器横评:2026年6款PDF翻译工具对比
人工智能·python·pdf
行业研究员1 小时前
腾讯云数据库:团队知识统一检索实践
数据库·云计算·腾讯云·腾讯云数据库·团队知识
朱容zr3331331 小时前
什么是覆盖索引?它的优点是什么?
数据库