前言
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 的部署工作。
