
技术弄巷
读完仅需
记得星标公众号

前言
MySQL 源码编译安装是企业生产环境的常用部署方式,可自定义安装路径、数据目录、存储引擎与字符集,适配业务专属需求。相比 YUM 安装,编译方式更灵活、可控,适合定制化数据库环境。
本文以 CentOS 7 为基础,完整演示 MySQL 5.7 源码编译、环境规划、依赖安装、参数配置、服务启动与密码初始化全流程,步骤清晰、可直接复制执行,适合运维人员学习与生产落地。

一、环境规划(生产规范)
数据目录: /mysql/data(逻辑卷,ext4 文件系统)二进制日志目录: /mysql/log(逻辑卷,ext4 文件系统)
清理旧数据:
rm -rf /mysql/data/* /mysql/log/*
二、卸载系统自带 MariaDB
# 查询自带包
rpm -qa | grep mariadb
# 强制卸载
rpm -e --nodeps mariadb-libs
三、创建专用用户与目录授权
# 创建系统用户(禁止登录)
useradd -s /sbin/nologin mysql
# 授权目录
chown -R mysql:mysql /mysql/data
chown -R mysql:mysql /mysql/log
四、安装编译依赖
# 基础编译工具
yum install gcc cmake ncurses-devel -y
# 开发工具组(解决编译报错)
yum groupinstall -y "Development Tools""Server Platform Development"
五、编译配置与安装
1. 解压源码包
tar xf mysql-boost-5.7.17.tar.gz
cd mysql-5.7.17
2. CMake 编译参数(定制化配置)
cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql57 \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DMYSQL_DATADIR=/mysql/data \
-DMYSQL_TCP_PORT=3306 \
-DWITH_BOOST=boost/boost_1_59_0/ \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
3. 编译与安装
make && make install
4. 目录权限修正
chown -R root:mysql /usr/local/mysql57
六、初始化数据库
mysqld --initialize \
--user=mysql \
--basedir=/usr/local/mysql57 \
--datadir=/mysql/data
注意:初始化日志末尾会生成 临时 root 密码,务必记录!
七、配置 my.cnf
cp /usr/local/mysql57/support-files/my-default.cnf /etc/my.cnf
vim /etc/my.cnf
写入核心配置:
[mysqld]
log_bin=/mysql/log/master
basedir=/usr/local/mysql57
datadir=/mysql/data
port=3306
server_id=11
socket=/tmp/mysql.sock
八、配置系统服务
# 复制启动脚本
cp /usr/local/mysql57/support-files/mysql.server /etc/init.d/mysqld
chmod a+x /etc/init.d/mysqld
# 开机自启
vim /etc/rc.d/rc.local
# 添加:/etc/init.d/mysqld start
chmod a+x /etc/rc.local
九、启动 MySQL
/etc/init.d/mysqld start
# 验证端口与进程
netstat -antp | grep mysql
ps -elf | grep mysql
十、配置环境变量与修改密码
1. 全局生效环境变量
vim /etc/profile
export PATH=$PATH:/usr/local/mysql57
source /etc/profile
2. 修改 root 密码
# 用临时密码登录修改
mysqladmin -uroot -p password "redhat"
# 登录测试
mysql -uroot -predhat
核心要点总结
- 编译安装优势
:路径、引擎、字符集可完全定制,适配生产环境。 - 关键目录
:数据目录 /mysql/data、日志目录/mysql/log,必须独立挂载。 - 用户权限
:用 mysql系统用户运行,禁止 root 直接启动。 - 初始化
: --initialize生成临时密码,务必保存。 - 编译依赖
:提前装 gcc、cmake、ncurses-devel,避免报错。 - 服务管理
:用 mysqld脚本管理,支持开机自启。
结尾互动
MySQL 源码编译是运维进阶必备技能,能完全掌控数据库环境,适配复杂业务需求。
如果这份完整编译教程对你有帮助,欢迎点赞、在看、转发给运维同行! 关注我,持续更新 MySQL 主从复制、备份恢复、性能调优等硬核内容,一起做专业数据库运维人!
如果你平时总在琢磨,怎么把自己的技术能力和 AI 红利结合起来,多赚一份靠谱的收入?
这本《豆包 AI 时代创富实战指南》,就是帮你把想法落地的「实操手册」。不用从零试错,不用自己瞎找方向,从豆包提示词模板,到普通人能直接上手的 AI 副业项目,再到接单、避坑的完整流程,都给你梳理得明明白白。
一杯咖啡的钱,换一套能直接开工的 AI 变现思路,不管是想搞副业增收,还是给技术能力加一层「变现 buff」,都值得一看。
👇点击下方卡片,把 AI 红利变成你的真金白银


夜雨聆风