在基于Red Hat的Linux发行版中,CentOS因其稳定性和广泛的企业级应用而备受青睐,MySQL作为全球最受欢迎的开源关系型数据库管理系统,与CentOS的组合是构建动态网站和应用程序的经典后端架构,本文将详细介绍在CentOS系统上通过官方Yum仓库安装、配置并安全化MySQL的完整流程,旨在为开发者与系统管理员提供一个清晰、可靠的参考指南。

准备工作:环境检查与清理
在开始安装之前,确保系统环境干净是避免后续冲突的关键,确认您的CentOS版本,因为不同版本可能对应不同的软件仓库配置,您可以通过以下命令查看系统版本信息:
cat /etc/redhat-release
检查系统中是否已安装了MySQL或其分支(如MariaDB),如果存在旧版本或冲突的数据库软件,务必将其彻底卸载,使用以下命令进行查找和移除:
yum list installed | grep -i mysql yum list installed | grep -i mariadb # 如果存在,则使用 yum remove 命令卸载 # sudo yum remove mysql-community-server mariadb-libs
安装MySQL官方Yum仓库
为了确保能够获取到最新、最稳定的MySQL版本,推荐使用Oracle官方提供的Yum仓库,这简化了安装和未来的更新过程。
- 
下载仓库安装包:访问MySQL官方Yum仓库下载页面,找到适用于您CentOS版本的RPM包链接,您可以使用
wget命令直接下载,对于CentOS 7:sudo wget https://repo.mysql.com/mysql80-community-release-el7-5.noarch.rpm
对于CentOS 8,链接会有所不同,请务必选择正确的版本。
 - 
安装仓库包:下载完成后,使用
yum本地安装该RPM包,此操作会将MySQL仓库信息添加到您的系统中。sudo yum localinstall mysql80-community-release-el7-5.noarch.rpm
 
安装MySQL服务器
仓库配置完成后,安装MySQL服务器本身变得非常简单,只需执行一条yum命令即可。
sudo yum install mysql-community-server
此命令会自动处理所有依赖关系,并从官方仓库下载MySQL Community Server的最新稳定版进行安装,安装过程可能需要一些时间,具体取决于您的网络速度。
启动服务并进行初始安全配置
安装完毕后,MySQL服务默认是未启动的,您需要手动启动它,并设置为开机自启。

# 启动MySQL服务 sudo systemctl start mysqld # 设置MySQL服务为开机自启 sudo systemctl enable mysqld
MySQL在首次启动时,会为root用户生成一个临时的随机密码,并记录在日志文件中,您需要找到这个密码才能进行首次登录。
sudo grep 'temporary password' /var/log/mysqld.log
命令的输出会包含一串类似 root@localhost: <临时密码> 的文本,复制这个临时密码。
随后,运行MySQL自带的安全配置脚本,这是保护数据库安全的重要一步。
sudo mysql_secure_installation
该脚本会引导您完成一系列安全设置,交互过程如下表所示:
| 提示 | 建议操作 | 说明 | 
|---|---|---|
| Enter password for user root: | 粘贴刚才复制的临时密码 | 使用临时密码登录 | 
| New password: | 设置您的新root密码 | 新密码需符合强度要求(大小写、数字、特殊字符) | 
| Re-enter new password: | 再次输入新密码 | 确认密码 | 
| Change the password for root? | n | 
通常已在上一环节更改,无需再次更改 | 
| Remove anonymous users? | y | 
强烈建议移除,消除安全隐患 | 
| Disallow root login remotely? | y | 
禁止root用户从远程登录,增强安全性 | 
| Remove test database and access to it? | y | 
移除默认的测试数据库 | 
| Reload privilege tables now? | y | 
立即应用所有权限更改 | 
登录验证与基础配置
完成安全配置后,您就可以使用新设置的密码登录MySQL了。
mysql -u root -p
输入密码后成功进入MySQL命令行界面,即可执行SQL语句,您可以通过以下命令验证安装:
SHOW DATABASES; SELECT VERSION();
为了更好地支持中文等多字节字符,建议将默认字符集设置为utf8mb4,您可以通过编辑MySQL配置文件/etc/my.cnf来实现,在[mysqld]和[client]部分添加以下内容:
[mysqld] character-set-server=utf8mb4 collation-server=utf8mb4_unicode_ci [client] default-character-set=utf8mb4
修改后,重启MySQL服务使配置生效:
sudo systemctl restart mysqld
配置防火墙(可选)
如果需要从其他服务器远程访问此MySQL数据库,您必须开放CentOS系统防火墙的默认3306端口。

# 永久开放MySQL服务(端口3306) sudo firewall-cmd --permanent --add-service=mysql # 重新加载防火墙规则 sudo firewall-cmd --reload
您还需要在MySQL中为特定IP或所有IP()创建具有相应权限的远程用户。
相关问答 FAQs
问题1:安装过程中提示 "GPG key check failed" 或类似签名验证失败,该如何处理? 解答:这个问题通常是因为系统未能验证MySQL官方仓库的GPG签名,最安全的解决方法是手动导入MySQL的GPG公钥,您可以使用以下命令:
sudo rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2025
导入公钥后,再次执行yum install mysql-community-server命令即可,如果问题依旧存在,作为临时解决方案,您可以在安装命令后添加--nogpgcheck参数来跳过GPG检查,但这会降低安全性,不推荐在生产环境中使用。
问题2:如果不慎忘记了MySQL的root密码,应该如何重置? 解答:重置root密码需要以“安全模式”启动MySQL,步骤如下:
- 停止MySQL服务:
sudo systemctl stop mysqld - 跳过权限验证启动:
sudo mysqld_safe --skip-grant-tables & - 无密码登录:
mysql -u root - 重置密码:在MySQL命令行中执行:
FLUSH PRIVILEGES; ALTER USER 'root'@'localhost' IDENTIFIED BY '您的新密码';
请确保新密码符合当前的密码策略。
 - 正常重启服务:使用
kill命令结束安全模式的进程,然后正常启动服务:sudo pkill mysqld sudo systemctl start mysqld
之后,您就可以使用新密码登录了。