准备工作与系统依赖配置
在CentOS系统上通过源码编译安装MySQL,虽然步骤比直接用yum命令多,但能完全掌控版本和性能参数,适合对数据库有定制化需求的生产环境。开始之前,请先确保你使用的是CentOS 7或8系统,并且拥有root权限或者具备sudo提权能力。源码编译对内存和磁盘空间有一定要求,建议服务器预留至少4GB内存和20GB可用磁盘空间。首先打开终端,更新系统软件包列表,执行yum update -y让所有基础组件保持最新状态。接着安装编译MySQL必须的工具链,包括gcc编译器、make构建工具以及cmake生成器。运行命令yum install gcc gcc-c++ make cmake bison-devel ncurses-devel libaio-devel -y。如果系统是CentOS 8,可能还需要额外安装openssl-devel和zlib-devel来支持加密压缩功能。依赖安装完成后,创建一个专门用于存放MySQL源码和运行数据的目录,比如mkdir -p /usr/local/mysql和mkdir -p /data/mysql,并赋予当前用户读写权限,这样后续操作就不会频繁遇到权限拒绝的问题。
获取源码包与解压环境
现在可以前往MySQL官方网站的社区版归档页面下载对应版本的源码压缩包。目前稳定且广泛使用的长期支持版本是8.0.x系列。建议使用wget命令直接下载到服务器的指定目录,例如wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.xx.tar.gz。下载完毕后,使用tar命令进行解压,输入tar -zxvf mysql-8.0.xx.tar.gz,然后进入解压后的源码目录cd mysql-8.0.xx。源码包体积较大,解压需要一点时间,耐心等待即可。进入目录后,你会看到大量的CMakeLists.txt文件和源代码文件夹,这就是接下来要交给编译器处理的素材。为了保证编译过程顺利,建议先检查系统是否安装了boost库,因为新版MySQL依赖boost作为底层数据结构支撑。如果提示缺少相关头文件,可以通过yum install boost boost-devel -y快速补齐,或者直接在cmake阶段指定boost路径,自动下载也是可行的选择。
配置编译参数与执行构建
源码安装的核心在于cmake配置环节。这一步决定了MySQL最终包含哪些功能模块、数据存放路径以及字符集默认设置。在源码根目录下执行cmake命令,通常需要带上关键参数。比较标准的配置写法是cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql -DSYSCONFDIR=/etc/my.cnf -DWITH_INNOBASE_STORAGE_ENGINE=1 -DDEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_unicode_ci。这里把安装路径定在了/usr/local/mysql,数据目录放在/data/mysql,配置文件放在/etc/my.cnf,同时开启InnoDB引擎,并统一使用utf8mb4字符集以完美支持emoji表情和多语言。参数填写无误后,按下回车开始解析配置。如果一切正常,终端会显示一系列绿色的成功信息。紧接着就是最耗时的编译步骤,执行make -j$(nproc)指令,利用多核CPU并行加速编译过程。根据服务器配置不同,这个过程可能需要二十分钟到一小时不等。期间终端会不断滚动进度条,只要不出现红色报错,就可以放心等待。编译彻底结束后,再执行make install完成二进制文件的正式部署。
初始化数据库与创建运行账户
安装程序就位后,还不能直接启动,必须先完成数据库文件的初始化。源码安装的MySQL不会自动创建系统用户,我们需要手动添加一个名为mysql的低权限账户,专门用于运行数据库进程。执行useradd -r -s /bin/false mysql命令创建虚拟登录用户,然后修改数据目录和安装目录的所有者归属,用chown -R mysql:mysql /usr/local/mysql和chown -R mysql:mysql /data/mysql将权限交还给mysql用户。接下来切换到该用户身份,或者使用sudo执行初始化命令。进入/usr/local/mysql/bin目录,运行./mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql。加上insecure参数表示首次初始化时不设复杂密码,方便后续调试。执行完毕后,终端会打印出临时密码记录,务必截图保存。初始化成功后,会在/data/mysql目录下生成大量的系统表文件和日志。
启动服务与安全加固设置
初始化搞定后,就可以配置开机自启并拉起服务了。源码安装没有自动生成的systemd服务文件,需要手动编写一个脚本。在/usr/lib/systemd/system/目录下新建mysql.service,内容主要包含描述信息、执行路径指向/usr/local/mysql/bin/mysqld,以及重启策略。保存后执行systemctl daemon-reload刷新配置,再用systemctl start mysql启动实例。启动成功后,通过systemctl status mysql查看运行状态,确认没有报红即可。此时数据库已经跑起来,但出于安全考虑,必须立刻修改root密码并删除测试账号。输入/usr/local/mysql/bin/mysql -u root -p连接数据库,输入刚才初始化的临时密码进入命令行。随后执行ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新强密码';重置管理员凭证。接着运行DROP DATABASE test;和DELETE FROM mysql.user WHERE user='';清理掉默认的匿名账户和空数据库。最后执行FLUSH PRIVILEGES;刷新权限表。至此,CentOS下的MySQL源码安装工作全部完成,生产环境只需定期备份/data/mysql目录并做好防火墙放行3306端口,即可稳定投入使用。



