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

CentOS系统MySQL源码编译安装完整指南

时间:2026-09-30 12:47:56 来源:www.vaopo.com 人气:人

在CentOS系统中通过源码编译安装MySQL,虽然步骤比直接运行yum或rpm命令繁琐一些,但能完全掌控软件版本、编译选项以及底层依赖库的匹配度,非常适合对性能调优有严格要求的生产环境。下面按照实际部署顺序,把整个流程拆解清楚,照着操作就能顺利跑起来。

准备编译环境与依赖包

首先需要搭好编译环境。源码编译离不开基础的C++编译器、构建工具链以及一些常用的系统库。打开终端后,直接执行一条yum命令搞定所有前置依赖。输入sudo yum install -y gcc gcc-c++ cmake ncurses-devel openssl-devel bison-devel libaio-devel boost boost-devel,等待系统自动下载并安装完成即可。如果服务器网络较慢,建议提前配置好阿里云或清华大学的EPEL源,能省去不少等待时间。

下载并解压MySQL源码包

依赖装好后,进入软件获取环节。目前MySQL官方已经全面转向8.0系列,源码包通常以tar.gz格式发布。你可以直接在浏览器访问MySQL官网的Downloads页面找到Source Code选项,复制链接地址。回到服务器终端,用wget命令下载到指定目录,例如cd /usr/local/src && wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-boost-8.0.xx.tar.gz。下载完成后执行tar -zxvf mysql-boost-8.0.xx.tar.gz进行解压,注意带boost参数的源码包会把必要的Boost库一起打包,避免后续找不到头文件的报错。

配置编译参数与执行编译

接下来是核心的配置阶段。进入解压后的源码目录,执行cmake命令生成Makefile文件。这一步决定了MySQL最终的安装路径和功能模块。推荐使用的命令是cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql -DSYSCONFDIR=/etc -DWITH_BOOST=boost/boost_xx_xx_x -DDEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_general_ci -DWITH_INNOBASE_STORAGE_ENGINE=1。其中路径可以根据实际磁盘情况调整,utf8mb4字符集务必保留,否则后期处理特殊符号会频繁报错。配置检查无误后,就可以开始正式编译了。输入make -j$(nproc)让多核CPU同时工作,大幅缩短耗时。编译过程通常需要十几分钟到半小时不等,耐心等待直到终端打印出成功提示。

初始化数据库与配置服务

编译结束后,执行sudo make install完成二进制文件部署。这时候需要手动创建运行账户和数据目录。先输入groupadd mysql && useradd -r -g mysql -s /bin/false mysql,接着mkdir -p /data/mysql && chown -R mysql:mysql /data/mysql。然后把MySQL自带的支持文件复制到正确位置,cp support-files/mysql.server /etc/init.d/mysqld并赋予执行权限chmod +x /etc/init.d/mysqld。如果需要兼容systemd管理,也可以将support-files/mysql.server重命名为mysqld.service放入/lib/systemd/system/目录下。

启动服务与安全设置

一切就绪后,进行数据库初始化。切换到mysql用户身份,执行/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql。初始化成功后,终端末尾会打印出一串随机生成的root临时密码,一定要立刻记下来。随后启动服务,输入service mysqld start或者systemctl start mysqld。登录客户端验证一下,mysql -u root -p,粘贴刚才的临时密码进入系统。

首次登录后,强烈建议立即重置密码并清理测试账号。执行ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';刷新权限FLUSH PRIVILEGES;。如果想远程连接,还需要在my.cnf里注释掉bind-address=127.0.0.1,并在MySQL命令行中给root开启远程授权grant all privileges on *.* to 'root'@'%' identified by '密码' with grant option;。最后记得在系统防火墙开放3306端口,firewall-cmd --zone=public --add-port=3306/tcp --permanent && firewall-cmd --reload。至此,源码安装的MySQL已经稳定运行,日常维护只需关注数据备份与日志监控即可。