CentOS 7使用Yum源安装MySQL 5.7及开机自启设置

白榆
白榆
发布时间:2026-09-18| 4人浏览过
原创

在CentOS 7系统中直接运行 yum install mysql-server 时,系统默认并不会下载官方的MySQL,而是会匹配安装其分支版本MariaDB。要在CentOS 7上稳定使用MySQL 5.7,标准的做法是先在本地系统注册Oracle官方维护的RPM Yum存储库,指定安装5.7分支,随后通过systemd完成服务的启动、基础安全配置以及开机自动运行的托管设置。

SVG 配图 1
图1:CentOS 7 安装与配置 MySQL 5.7 总体执行流程

排查并卸载冲突的系统自带组件

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密钥验证: MySQL官方存储库在过去更换过公钥。若在后续安装时出现形如 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
SVG 配图 2
图2:Yum存储库通过 enabled 状态决定实际拉取的数据库大版本

执行安装与组件校验

源仓库就绪后,直接通过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) 报错。

SVG 配图 3
图3:MySQL 5.7 validate_password 插件的安全约束与处理流向

在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
SVG 配图 4
图4:systemd 目标依赖与服务自启挂载机制

常用管理指令与关键配置路径

完成部署后,后续维护中经常涉及以下路径和管理指令:

核心文件路径:

  • 主要配置文件:/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 守护进程,系统重启后即可自动拉起服务正常提供连接。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。