MySQL源码包在CentOS7下的完整安装指南

2026-10-14 18:59:42

准备工作与环境检查

在CentOS7系统上通过源码编译安装MySQL,首先确保服务器网络连接正常,并且拥有root权限或者具备sudo权限的账号。由于源码编译过程对内存和磁盘空间有一定要求,建议至少预留2GB以上的可用内存和10GB以上的磁盘空间。打开终端后,先运行cat /etc/redhat-release命令确认系统版本确实是CentOS7,同时关闭防火墙或开放3306端口,避免后续连接测试时被拦截。

下载与解压源码包

前往MySQL官方网站或者镜像站下载对应版本的源码压缩包。目前主流选择是8.0系列或5.7系列的tar.gz文件。将下载好的文件上传至服务器的临时目录,例如/usr/local/src。接着使用tar命令进行解压,命令格式为tar zxvf mysql版本号.tar.gz,解压完成后进入对应的源码目录,准备后续的编译步骤。

安装编译依赖工具

源码编译离不开基础的开发工具和第三方库。执行yum install cmake gcc gcc-c++ make bison ncurses-devel openssl-devel libaio-devel zlib-devel -y 命令一次性安装所需组件。其中cmake是MySQL官方推荐的构建工具,gcc系列负责C和C代码的编译,ncurses和openssl则用于支持命令行交互和加密传输功能。安装完成后可以通过cmake --version验证是否生效。

CMake配置与编译选项说明

进入源码根目录后,运行cmake命令进行预配置。常见的参数包括DCMAKE_INSTALL_PREFIX指定安装路径,DDEFAULT_CHARSET设定默认字符集为utf8mb4,DWITH_INNOBASE_STORAGE_ENGINE启用InnoDB存储引擎,DENABLE_DOWNLOADS控制是否自动下载依赖。配置过程中会显示检查各项功能的提示,若出现红色错误提示需根据提示补充缺失的库文件。配置无误后屏幕末尾会显示CMake step successfully completed字样。

执行编译与安装

配置完成后开始正式编译,执行make命令。该过程耗时较长,具体取决于服务器CPU核心数和内存大小,通常在一到两小时左右。编译期间请勿中断进程,遇到警告信息可忽略,主要关注是否有fatal error报错。一切顺利后运行make install命令将编译生成的二进制文件拷贝到预设的安装目录中。此时MySQL的核心程序已经就位。

创建用户与目录权限分配

出于安全考虑,不建议直接使用root账户运行数据库服务。执行groupadd mysql和useradd -r -g mysql mysql命令创建专用的mysql用户组与用户。随后进入安装目录,运行chown -R mysql:mysql .改变所有文件的所有者为mysql用户,同时确保data目录的读写权限正确归属。这一步能有效防止权限混乱导致的启动失败。

初始化数据库与生成配置文件

切换到mysql用户身份,进入bin目录执行mysqld --initialize-insecure --user=mysql --basedir=安装路径 --datadir=数据目录路径命令。初始化过程会生成系统表空间和随机生成的root密码。初始化成功后,在/etc目录下创建my.cnf文件,填入基本的参数配置,如port,character-set-server,socket以及log-error的路径指向。

启动服务与开机自启设置

编写systemd服务文件以方便管理。在/lib/systemd/system/下新建mysql.service,内容包含type为simple的启动指令,并指定环境变量与日志路径。保存后重载守护进程配置systemctl daemon-reload,接着使用systemctl start mysql启动服务,并通过systemctl status mysql查看运行状态。若显示active running即为成功。最后执行systemctl enable mysql开启开机自启功能。

修改默认密码与安全加固

服务启动后使用mysql客户端登录数据库,初始密码为空时直接回车即可进入。登录后务必第一时间执行alter user root identified by新密码语句修改默认凭证。关闭远程匿名登录账号,删除test测试库,仅保留必要的管理权限。通过grant语句按需分配应用账号的访问范围,完成基础的安全加固工作。

常见报错与解决思路

编译阶段若提示找不到boost库,需手动下载对应版本的boost压缩包并在cmake参数中指定路径。启动时报错libnuma.so缺失,可通过yum install numactl补齐。密码认证插件报错多因8.0默认使用caching_sha2_password,可在my.cnf中配置default_authentication_plugin=mysql_native_password兼容旧版客户端。遇到任何异常优先查看/var/log/mysqld.log获取详细堆栈信息。

相关文章