游乐游手机版
首页/数据库/文章详情

CentOS 9安装配置MySQL数据库完整教程新手友好常见问题解决

时间:2026-06-10 07:02
基于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 的部署工作。

来源:https://www.jb51.net/database/365443mj6.htm
上一篇MySQL MVCC多版本并发控制实现机制详解 下一篇Redis键值出现乱码的原因分析及解决
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
MyBatis Hive多表关联实现方法
数据库 · 2026-07-01

MyBatis Hive多表关联实现方法

MyBatis处理Hive多表关联查询与普通数据库类似。需准备映射文件,使用association和collection标签定义关联;创建Java实体类包含集合成员变量承接一对多关系;编写Mapper接口声明查询方法;配置MyBatis环境注册映射;最后通过SqlSession调用即可获取关联数据。

提升Hive Metastore查询速度的有效方法
数据库 · 2026-07-01

提升Hive Metastore查询速度的有效方法

HiveMetastore查询优化需从存储优化、缓存机制、查询策略、索引构建、并行能力、配置调优、硬件升级、数据分区及定期维护等多方面协同入手,综合提升系统吞吐量与响应速度,有效降低查询延迟。

Hive Metastore处理大数据的核心机制
数据库 · 2026-07-01

Hive Metastore处理大数据的核心机制

HiveMetastore管理元数据,通过分库分表、读写分离应对海量元数据,调整JVM堆内存并采用G1GC提升稳定性,利用HDFS或云存储及CBO优化器加速查询,在大数据场景下提供高效元数据服务。

Kafka Coordinator 如何监控集群的完整方法与最佳实践指南
数据库 · 2026-07-01

Kafka Coordinator 如何监控集群的完整方法与最佳实践指南

Kafka协调器监控可通过命令行工具、KafkaManager及JMX实时查看消费者滞后、分区状态等性能指标,并利用Prometheus+Grafana实现长期可视化监控与告警,从而确保集群稳定运行。

Hive中row_number()函数性能的实用高效监控方法与优化技巧
数据库 · 2026-07-01

Hive中row_number()函数性能的实用高效监控方法与优化技巧

Hive中row_number()性能受数据量、索引、查询复杂度及数据倾斜影响。优化需通过分区、建索引、查询优化、使用ORC Parquet格式及调整CBO和并行度实现。监控可借助HiveWebUI、YARN界面、日志或第三方工具定位瓶颈,持续迭代改进。