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

张开发
2026/5/23 23:06:24 15 分钟阅读
如何在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.04sudo apt install build-essential cmake libssl-dev libncurses5-dev liblz4-dev libzstd-dev zlib1g-devCentOS 8sudo dnf install gcc-c cmake openssl-devel ncurses-devel lz4-devel zstd-devel zlib-devel特别注意libncurses5-devUbuntu不能用libncurses6-dev替代MySQL 8.0.x仍硬依赖v5 ABICentOS上ncurses-devel通常OK但若报term.h not found要确认是否装了完整版非最小安装别跳过zstd-devel和lz4-devel——MySQL默认启用这些压缩算法关掉它们要加-DENABLED_LOCAL_INFILEOFF -DWITH_ZSTDOFF -DWITH_LZ4OFF但生产环境不建议cmake命令里最关键的几个开关参数MySQL源码不提供configure脚本全靠cmake控制构建行为。参数写错轻则编译出错重则装完连mysqld都起不来——比如默认用mysql用户运行但系统没这个用户就会静默失败。基础路径与用户cmake -DCMAKE_INSTALL_PREFIX/usr/local/mysql -DMYSQL_USERmysql ....别漏必须指定存储引擎-DDEFAULT_STORAGE_ENGINEInnoDB否则默认是MyISAM且后续无法通过配置文件切换字符集要显式设-DDEFAULT_CHARSETutf8mb4 -DDEFAULT_COLLATIONutf8mb4_0900_ai_ci不设就用latin1连建库都可能乱码禁用测试套件省时间-DENABLE_DOWNLOADSOFF -DINSTALL_TESTDATAOFF否则cmake会尝试下载Boost网络差时卡死make编译时内存和线程踩坑点make -j$(nproc)看着快但在8GB内存以下机器上大概率OOMcc1plus进程被kill日志只显示internal compiler error根本看不出是内存不够。 arXiv Xplorer ArXiv 语义搜索引擎帮您快速轻松的查找保存和下载arXiv文章。

更多文章