CentOS 9安装配置MySQL完整教程(新手友好,常见问题解决)

作者:技术拾光时间:2026-06-11 08:54:01浏览:453

基于CentOS9系统,使用DNF包管理器安装MySQL服务器,涵盖系统更新、服务启动与自启设置、安全脚本配置(如删除匿名用户、禁止root远程登录),以及登录验证和远程连接、密码重置等常见问题的解决方法。

前言

CentOS 9 作为 Red Hat Enterprise Linux 9 的社区重建版,稳定性和可靠性表现优异。与以往版本不同,它全面采用 DNF 包管理器取代传统的 YUM,软件安装和依赖管理体验得到显著提升。MySQL 作为后端开发和服务器部署中最常用的关系型数据库,与 CentOS 9 搭配使用堪称经典组合。以下将完整介绍安装与配置流程,从前置准备到步骤拆解,再到安全配置、测试验证,最后汇总新手常见问题及解决方案。所有步骤均经实测验证,希望对初次接触 CentOS 和 MySQL 的用户有所帮助。

CentOS 9安装配置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

执行后进入交互式配置界面,以下是各项说明及推荐做法:

  1. 是否启用密码强度验证组件?
    提示 Would you like to setup VALIDATE PASSWORD component
    建议输入 N(不启用)。若启用,密码必须符合复杂度要求(长度、大小写、特殊字符),新手容易记混。若对安全性有更高要求,可输入 Y 并按要求设置密码。

  2. 设置 MySQL root 用户密码
    提示 New password: 和 Re-enter new password:
    建议使用字母 + 数字 + 特殊字符的组合。输入时不会显示,直接输入后按回车即可。

  3. 是否删除匿名用户?
    提示 Remove anonymous users
    输入 Y(建议删除,匿名用户属于安全漏洞)。

  4. 是否禁止 root 用户远程登录?
    提示 Disallow root login remotely
    新手建议输入 Y(禁止远程登录),仅允许本地登录,安全性更高。若日后需要远程连接,可单独配置授权。

  5. 是否删除 test 数据库?
    提示 Remove test database and access to it
    输入 Y(删除,保留无意义且存在风险)。

  6. 是否刷新权限表?
    提示 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 未成功安装,或安装过程中依赖缺失。

解决方案:

  1. 重新执行安装命令:sudo dnf install -y mysql-server,注意观察安装过程中是否有报错。
  2. 若提示依赖缺失,可尝试跳过损坏的依赖:sudo dnf install -y --skip-broken mysql-server。
  3. 若仍失败,清理 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 用户权限异常。

解决方案:

  1. 确认密码是否正确,重新输入一遍(注意大小写,输入时不可见)。
  2. 若忘记密码,可按以下步骤重置 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 服务器上操作):

  1. 开放 3306 端口:

    # 开放 3306 端口(永久开放)
    sudo firewall-cmd --permanent --add-port=3306/tcp
    # 重新加载防火墙配置,使端口开放生效
    sudo firewall-cmd --reload
    # 查看端口是否开放成功
    sudo firewall-cmd --list-ports
  2. 授权远程用户登录(以 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 部署。