基于CentOS9系统,使用DNF包管理器安装MySQL服务器,涵盖系统更新、服务启动与自启设置、安全脚本配置(如删除匿名用户、禁止root远程登录),以及登录验证和远程连接、密码重置等常见问题的解决方法。
CentOS 9安装配置MySQL完整教程(新手友好,常见问题解决)
时间:2026-06-11
浏览:452
文章目录
前言
CentOS 9 作为 Red Hat Enterprise Linux 9 的社区重建版,稳定性和可靠性表现优异。与以往版本不同,它全面采用 DNF 包管理器取代传统的 YUM,软件安装和依赖管理体验得到显著提升。MySQL 作为后端开发和服务器部署中最常用的关系型数据库,与 CentOS 9 搭配使用堪称经典组合。以下将完整介绍安装与配置流程,从前置准备到步骤拆解,再到安全配置、测试验证,最后汇总新手常见问题及解决方案。所有步骤均经实测验证,希望对初次接触 CentOS 和 MySQL 的用户有所帮助。

一、前置准备
1.1 系统环境确认
首先需要确认系统版本是否正确。版本不一致可能导致后续安装出现异常。执行以下命令查看:
cat /etc/centos-release
正常输出应为 CentOS Stream release 9。若版本不符,建议先切换至对应版本再继续操作。
1.2 权限准备
安装和配置 MySQL 需要 root 权限,或具备 sudo 权限的普通用户。推荐全程使用 sudo 操作,避免直接以 root 用户登录,以提高系统安全性。若当前用户没有 sudo 权限,请联系管理员添加。
1.3 网络准备
安装过程中需要通过 DNF 从官方源下载软件包,因此系统必须联网。执行以下命令测试:
ping -c 3 www.baidu.com
若能收到回复则表示网络正常。若连接失败,请先检查防火墙、网关等配置。
1.4 清理旧版本(可选)
若之前安装过 MySQL 或 MariaDB(CentOS 某些版本默认携带 MariaDB),建议先卸载以避免版本冲突。执行:
# 查看已安装的 MySQL/MariaDB 包 sudo dnf list installed | grep -E "mysql|mariadb" # 卸载所有相关包(根据上一步输出调整包名) sudo dnf remove -y mysql mariadb mariadb-server mysql-server
二、详细安装配置步骤
步骤1:更新系统软件包(推荐)
安装前先更新系统所有软件包,避免因依赖版本过旧导致安装失败。执行:
sudo dnf update -y
更新完成后,系统会自动处理依赖关系,为后续 MySQL 安装做好准备。
步骤2:使用 DNF 安装 MySQL 服务器
CentOS 9 的官方源已包含 mysql-server 包,无需额外添加第三方源。直接安装:
sudo dnf install -y mysql-server
-y 参数表示自动确认,无需手动输入 y。DNF 会自动下载并安装 MySQL 服务器及其依赖包,耗时约 1~5 分钟,视网络速度而定。
安装完成后可验证版本:
mysql --version
正常输出类似 mysql Ver 8.0.32 for Linux on x86_64 (Source distribution)(版本号可能略有差异,不影响使用)。
步骤3:启动 MySQL 服务
MySQL 安装后默认不会自动启动,需手动启动 mysqld 服务:
sudo systemctl start mysqld
启动后建议查看服务状态:
sudo systemctl status mysqld
若输出显示 active (running),则表示启动成功。若启动失败,可查看日志(日志路径:/var/log/mysqld.log)排查原因。
步骤4:设置 MySQL 服务开机自启
系统重启后 MySQL 不会自动运行,需设置为开机自启:
sudo systemctl enable mysqld
执行后会出现类似 Created symlink ... 的提示,表明设置生效。若日后需要临时关闭自启,可执行 sudo systemctl disable mysqld。
步骤5:运行初始安全脚本,配置 MySQL 安全选项
刚安装的 MySQL 存在一些安全风险,例如 root 密码为空、允许匿名登录等。官方提供了 mysql_secure_installation 脚本,可快速完成安全配置:
sudo mysql_secure_installation
执行后进入交互式配置界面,以下是各项说明及推荐做法:
是否启用密码强度验证组件?
提示Would you like to setup VALIDATE PASSWORD component
建议输入N(不启用)。若启用,密码必须符合复杂度要求(长度、大小写、特殊字符),新手容易记混。若对安全性有更高要求,可输入Y并按要求设置密码。设置 MySQL root 用户密码
提示New password:和Re-enter new password:
建议使用字母 + 数字 + 特殊字符的组合。输入时不会显示,直接输入后按回车即可。是否删除匿名用户?
提示Remove anonymous users
输入Y(建议删除,匿名用户属于安全漏洞)。是否禁止 root 用户远程登录?
提示Disallow root login remotely
新手建议输入Y(禁止远程登录),仅允许本地登录,安全性更高。若日后需要远程连接,可单独配置授权。是否删除 test 数据库?
提示Remove test database and access to it
输入Y(删除,保留无意义且存在风险)。是否刷新权限表?
提示Reload privilege tables now
必须输入Y,否则配置不会立即生效。
所有选项配置完成后,会显示 All done!,表明安全配置完成。
步骤6:登录 MySQL 服务器,验证安装配置
安全配置完成后,登录 MySQL 以确认一切正常:
mysql -u root -p
-u root 指定用户(MySQL 超级管理员),-p 表示需要输入密码。执行后输入刚才设置的 root 密码,按回车。若登录成功,将进入 mysql> 命令行界面。
可执行以下命令进行简单测试:
# 查看 MySQL 版本 select version(); # 查看当前所有数据库 show databases(); # 退出 exit;
若命令正常执行,则说明安装与配置成功。
三、常见问题及解决方案(新手必看)
问题1:启动 mysqld 服务失败,提示 "Unit mysqld.service not found"
原因:MySQL 未成功安装,或安装过程中依赖缺失。
解决方案:
- 重新执行安装命令:
sudo dnf install -y mysql-server,注意观察安装过程中是否有报错。 - 若提示依赖缺失,可尝试跳过损坏的依赖:
sudo dnf install -y --skip-broken mysql-server。 - 若仍失败,清理 DNF 缓存后再安装:
sudo dnf clean all && sudo dnf makecache && sudo dnf install -y mysql-server。
问题2:登录 MySQL 时,提示 "Access denied for user 'root'@'localhost' (using password: YES)"
原因:密码输入错误,或安全配置时密码设置有误,或 root 用户权限异常。
解决方案:
- 确认密码是否正确,重新输入一遍(注意大小写,输入时不可见)。
- 若忘记密码,可按以下步骤重置 root 密码:
# 1. 停止 MySQL 服务
sudo systemctl stop mysqld
# 2. 以跳过权限验证的方式启动
sudo mysqld_safe --skip-grant-tables &
# 3. 新开一个终端,直接登录(无需密码)
mysql -u root
# 4. 切换到 mysql 系统库
use mysql;
# 5. 重置 root 密码(将 '你的新密码' 替换为实际密码)
update user set authentication_string=password('你的新密码') where user='root' and host='localhost';
# 6. 刷新权限
flush privileges;
# 7. 退出、关闭跳过权限的服务、重启 MySQL
exit;
sudo pkill mysqld
sudo systemctl start mysqld
# 8. 用新密码登录
mysql -u root -p
问题3:远程连接 MySQL 失败(提示无法连接到服务器)
原因:可能是在步骤5中禁止了 root 远程登录,或防火墙未开放 3306 端口(MySQL 默认端口),或 MySQL 未授权远程用户。
解决方案(在 CentOS 9 服务器上操作):
开放 3306 端口:
# 开放 3306 端口(永久开放) sudo firewall-cmd --permanent --add-port=3306/tcp # 重新加载防火墙配置,使端口开放生效 sudo firewall-cmd --reload # 查看端口是否开放成功 sudo firewall-cmd --list-ports
授权远程用户登录(以 root 为例,生产环境建议创建普通远程用户):
# 登录 MySQL mysql -u root -p # 授权 root 用户允许远程登录(% 表示所有IP,建议替换为具体IP) grant all privileges on *.* to 'root'@'%' identified by '你的root密码' with grant option; # 刷新权限 flush privileges; # 退出 exit;
总结
以上是 CentOS 9 安装配置 MySQL 的完整流程,涵盖系统检查、安全加固以及常见问题的排错方法,基本覆盖初学者可能遇到的各类情况。核心要点为:确认环境、更新系统、使用 DNF 安装、启动并设置自启、运行安全脚本做好防护。遇到远程连接或密码问题时,按照对应解决方案处理即可。整体流程并不复杂,只要每一步都稳妥执行,通常不会出现大的障碍。希望本教程能帮助您顺利完成 MySQL 部署。
实用工具推荐
绿化、压缩、噪点和虚拟水印,自由调节做旧程度。
选择画质和输出格式,预览压缩前后的大小。