蛙扑下载站:安全、绿色、放心的专业下载站! 首页|最近更新|专题集合|站内导航

Ubuntu下MySQL 5.7源码编译安装完整指南

时间:2026-10-10 16:31:38 来源:www.vaopo.com 人气:人

在Ubuntu系统中使用apt包管理器安装MySQL虽然便捷,但有时我们需要自定义编译选项、调整底层参数或适配特定硬件环境。此时,通过源码编译安装MySQL 5.7就成了更灵活的选择。本文将手把手带你完成从环境准备到服务启动的全过程,避开常见坑点,确保一次成功。

第一步:安装编译依赖库

源码编译需要大量基础工具和第三方库。打开终端,依次执行以下命令更新软件源并安装必需组件。这一步耗时较长,请耐心等待。

sudo apt update && sudo apt install build-essential cmake libncurses5-dev libssl-dev openssl libaio-utils bison flex pkg-config libcurl4-gnutls-dev libwrap0-dev libxml2-dev zlib1g-dev uuid-dev

特别注意,Ubuntu 20.04及以上版本默认可能自带较新的CMake,如果版本过低需手动升级至3.10以上,否则后续配置会报错。同时,GCC编译器版本建议在9.0以上,可通过gcc --version查看确认。

第二步:下载与解压源码

前往MySQL官方归档页面下载5.7版本的稳定发布版。推荐使用wget命令直接下载到系统目录,避免权限问题。

wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.44.tar.gz

下载完成后进行解压,并进入源码根目录。tar -zxvf mysql-5.7.44.tar.gz cd mysql-5.7.44

建议将源码放在/home或/opt目录下,方便后续清理。不要直接在root家目录操作,以免文件权限混乱。

第三步:配置编译参数

进入源码目录后,使用cmake进行预处理配置。这一步决定了MySQL的功能模块、存储引擎和数据路径。以下为通用生产环境推荐参数:

cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql -DSYSCONFDIR=/etc -DMYSQL_TCP_PORT=3306 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DDEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_general_ci -DWITH_DEBUG=0

解释几个关键参数:安装路径设为/usr/local/mysql,数据目录独立放在/data/mysql有利于备份和磁盘扩容,字符集统一使用utf8mb4以支持完整Emoji表情。关闭调试模式可显著减少编译体积和时间。参数末尾的圆点代表在当前目录生成构建文件,切勿漏掉。

第四步:执行编译与安装

配置成功后,开始编译。编译过程非常消耗CPU和内存,建议使用多核并行加速。

make -j$(nproc)

耐心等待进度条走完,期间终端会滚动大量日志。若中途报错,通常是依赖缺失或CMake缓存残留导致,可先运行make clean清除中间文件再重试。编译无误后,执行安装命令:

make install

该步骤会将二进制文件和配置文件分发到指定目录,通常只需几分钟。

第五步:创建用户与初始化数据库

出于安全考虑,绝对不要用root运行MySQL。新建专用账户并设置数据目录权限。

sudo groupadd mysql sudo useradd -r -g mysql -s /bin/false mysql sudo mkdir -p /data/mysql sudo chown -R mysql:mysql /data/mysql sudo chown -R mysql:mysql /usr/local/mysql

接下来执行初始化脚本,生成系统表和初始密码。注意记录终端输出的临时密码,后续登录必须修改。

/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql

第六步:配置环境变量与服务管理

为了让命令行能直接调用mysql命令,需要将安装路径加入系统环境变量。编辑/etc/profile文件,在末尾追加export PATH=$PATH:/usr/local/mysql/bin,然后执行source /etc/profile生效。

复制官方提供的系统服务文件到lib目录,实现开机自启和systemctl统一管理。cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql chmod +x /etc/init.d/mysql update-rc.d mysql defaults

启动服务时输入systemctl start mysql,检查状态用systemctl status mysql。首次登录使用临时密码:mysql -u root -p,登录后立即执行ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';切换密码。

常见问题与避坑提示

如果在启动时遇到Permission denied,请检查SELinux或AppArmor策略是否拦截,临时关闭测试即可定位。若编译时报错找不到libncurses或libssl,说明依赖未装全,回到第一步补装即可。数据目录必须为空且无残留ibdata文件,否则mysqld会拒绝初始化。日常维护中,定期备份/data/mysql目录比任何工具都可靠。按照上述步骤操作,即可在Ubuntu上获得一个性能稳定、高度可控的MySQL 5.7实例。