CentOS 7使用Yum源安装MySQL 5.7及开机自启设置
在CentOS 7系统中直接运行 yum install mysql-server 时,系统默认并不会下载官方的MySQL,而是会匹配安装其分支版本MariaDB。要在CentOS 7上稳定使用MySQL 5.7,标准的做法是先在本地系统注册Oracle官方维护的RPM Yum存储库,指定安装5.7分支,随后通过systemd完成服务的启动、基础安全配置以及开机自动运行的托管设置。
排查并卸载冲突的系统自带组件
CentOS 7标准镜像中通常默认集成了 mariadb-libs 软件包。如果不提前清理,在执行MySQL安装事务时,两者共用的配置文件和共享库会触发依赖冲突,导致RPM事务中断并报错。首先检查系统中已有的相关组件:
rpm -qa | grep -i mariadb
如果终端返回类似 mariadb-libs-5.5.xx-x.el7.x86_64 的包名,可以使用RPM命令将其移除。为避免连带卸载其他系统基础依赖,通常使用 --nodeps 选项安全忽略无危害的级联删除:
sudo rpm -e --nodeps $(rpm -qa | grep -i mariadb)
添加官方MySQL Yum存储库并确认版本
MySQL官方为Red Hat Enterprise Linux 7及其衍生版提供了专用的Repository安装包。通过下载并安装该RPM包,系统的 /etc/yum.repos.d/ 目录下会自动生成官方的软件源定义文件。
wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
sudo rpm -ivh mysql57-community-release-el7-11.noarch.rpm
GPG Keys are configured as... FAILED 的验证错误,可以直接导入官方新的GPG公钥:sudo rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
安装完成后,检查本地处于启用状态的MySQL软件源。如果操作正确,终端仅会激活5.7分支:
yum repolist enabled | grep mysql
输出示例:
mysql57-community/x86_64 MySQL 5.7 Community Server 620
执行安装与组件校验
源仓库就绪后,直接通过Yum指令安装服务包 mysql-community-server。Yum会根据依赖关系自动安装服务端、客户端程序、共享库以及核心运行依赖:
sudo yum install -y mysql-community-server
安装过程可能持续数分钟。安装完毕后,输入以下命令核验二进制文件版本:
mysql --version
输出示例:
mysql Ver 14.14 Distrib 5.7.44, for Linux (x86_64) using EditLine wrapper
启动服务并提取临时密码
MySQL在CentOS 7下默认以独立服务单元 mysqld 的形式存在。首次启动时,数据库引擎会执行数据目录初始化(创建 /var/lib/mysql),并生成一个具有极高强度的初始管理密码:
sudo systemctl start mysqld
初次启动需要几秒钟完成数据字典的构建。启动完成后,该初始密码会被写入到日志文件 /var/log/mysqld.log 中。通过 grep 可以快速检索提取:
sudo grep 'temporary password' /var/log/mysqld.log
输出示例:
[Note] A temporary password is generated for root@localhost: hJ=8q*aLz<!d
末尾的 hJ=8q*aLz<!d 即为当前的临时登录凭证。使用该密码登录并执行安全初始化:
mysql -u root -p
在提示符处输入上述提取到的字符串,即可成功进入MySQL命令行交互环境。
密码安全策略调整与修改
MySQL 5.7默认启用了严格的密码校验插件(validate_password)。在默认策略下,密码必须包含大写字母、小写字母、数字及特殊字符,且长度不少于8位。若尝试设置简单口令,会收到 ERROR 1819 (HY000) 报错。
在SQL终端内执行密码更新语句(请使用包含大小写、数字和特殊字符的密码替换下例):
ALTER USER 'root'@'localhost' IDENTIFIED BY 'StrongPassword_2026!';
FLUSH PRIVILEGES;
如果是在内部测试或离线开发环境中,为了操作便利需要降低限制,可以在当前会话中先放宽策略要求:
-- 将密码强度策略调整为 LOW(仅验证长度)
SET GLOBAL validate_password_policy = 0;
-- 将密码最小长度调整为 6
SET GLOBAL validate_password_length = 6;
-- 执行更改
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
更改完成后,输入 exit 退出MySQL交互终端。
配置开机自启与运行状态验证
在CentOS 7中,系统由 systemd 初始化系统接管。为了让服务在服务器重启或故障恢复时自动运行,需要将 mysqld.service 挂载到多用户目标(multi-user.target)的开机自启链路上。
sudo systemctl enable mysqld
该命令会在后台自动创建符号链接:
Created symlink from /etc/systemd/system/multi-user.target.wants/mysqld.service to /usr/lib/systemd/system/mysqld.service.
开机自启配置完成后,核实服务是否真正进入开机引导链,并检查当前的实时运行状态:
# 检查是否已配置开机自启
systemctl is-enabled mysqld
# 检查当前服务实时运行状态
systemctl status mysqld
正常输出如下:
# is-enabled 输出:
enabled
# status 输出中包含以下关键运行信息:
Active: active (running) since Thu 2026-09-17 03:49:36 UTC; 5min ago
常用管理指令与关键配置路径
完成部署后,后续维护中经常涉及以下路径和管理指令:
核心文件路径:
- 主要配置文件:
/etc/my.cnf(调整字符集utf8mb4、端口、连接数等均在此修改) - 数据库文件目录:
/var/lib/mysql/ - 错误日志文件:
/var/log/mysqld.log - 运行进程PID文件:
/var/run/mysqld/mysqld.pid
常用运维命令:
sudo systemctl restart mysqld # 重启数据库
sudo systemctl stop mysqld # 停止数据库
sudo systemctl status mysqld # 查看运行状态与近期日志
到这里,MySQL 5.7 已经在 CentOS 7 系统上完成了基于官方 Yum 源的规范部署,并已受控于 systemd 守护进程,系统重启后即可自动拉起服务正常提供连接。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









