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

 更新时间:2026年06月09日 10:35:28   作者:家居电霸No.1  
这篇文章主要介绍了CentOS 9安装配置MySQL数据库的相关资料,包括前置准备、安装步骤、安全配置及常见问题解决方案,文中通过代码介绍的非常详细,需要的朋友可以参考下

前言

前言:CentOS 9 作为 Red Hat Enterprise Linux 9 的社区重建版本,延续了 CentOS 系列的稳定性和可靠性,同时全面采用 DNF 包管理器(替代了传统的 YUM),优化了软件安装和依赖管理体验。MySQL 作为目前最流行的关系型数据库之一,广泛应用于后端开发、服务器部署等场景。本文将详细讲解 CentOS 9 系统下 MySQL 的完整安装、配置流程,包含前置准备、步骤拆解、安全配置、测试验证,以及新手常遇到的问题解决方案,适合刚接触 CentOS 和 MySQL 的开发者参考,亲测可用后整理分享。

一、前置准备

1.1 系统环境确认

首先确认当前系统为 CentOS 9,避免因系统版本不一致导致安装步骤异常。执行以下命令查看系统版本:

cat /etc/centos-release

正常输出应类似:CentOS Stream release 9,若版本不符,建议切换至对应系统版本后再进行安装。

1.2 权限准备

安装和配置 MySQL 需要 root 权限或具备 sudo 权限的普通用户,本文全程使用 sudo 权限操作(避免直接使用 root 用户登录,提升系统安全性)。若当前用户无 sudo 权限,可联系系统管理员添加。

1.3 网络准备

安装过程中需要通过 DNF 从官方源下载 MySQL 相关包,确保系统已联网,可执行以下命令测试网络连通性:

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 服务器包(mysql-server),无需额外添加第三方源,直接使用 DNF 安装即可,执行命令:

sudo dnf install -y mysql-server

说明:-y 参数表示自动确认安装,无需手动输入 y 确认;dnf 会自动下载并安装 MySQL 服务器及所需的依赖包,等待安装完成即可(耗时根据网络速度而定,一般1-5分钟)。

安装完成后,可执行以下命令查看 MySQL 安装版本,确认安装成功:

mysql --version

正常输出应类似:mysql Ver 8.0.32 for Linux on x86_64 (Source distribution)(版本号可能略有差异,不影响使用)。

步骤3:启动 MySQL 服务

MySQL 安装完成后,默认不会自动启动,需手动启动 mysqld 服务(MySQL 服务名统一为 mysqld),执行命令:

sudo systemctl start mysqld

启动后,建议查看服务状态,确认服务正常运行,避免因配置异常导致启动失败:

sudo systemctl status mysqld

若输出中包含 active (running),说明 MySQL 服务已成功启动;若启动失败,可查看日志排查问题(日志路径:/var/log/mysqld.log)。

步骤4:设置 MySQL 服务开机自启

为了避免系统重启后 MySQL 服务无法自动运行,需将 mysqld 服务设置为开机自启,执行命令:

sudo systemctl enable mysqld

执行完成后,会输出类似 Created symlink /etc/systemd/system/multi-user.target.wants/mysqld.service → /usr/lib/systemd/system/mysqld.service. 的提示,说明开机自启设置成功。

可选操作:若后续需要临时关闭开机自启,执行命令 sudo systemctl disable mysqld

步骤5:运行初始安全脚本,配置 MySQL 安全选项

MySQL 安装完成后,默认存在安全隐患(如无 root 密码、允许匿名登录等),官方提供了 mysql_secure_installation 脚本,用于快速配置 MySQL 的安全选项,执行命令:

sudo mysql_secure_installation

执行后,会进入交互式配置界面,以下是详细的选项说明(新手建议按如下配置,兼顾安全和易用性):

  1. 是否启用密码强度验证组件(VALIDATE PASSWORD COMPONENT)?
    提示:Would you like to setup VALIDATE PASSWORD component?
    建议输入 N(不启用),若启用,密码需满足复杂度要求(长度、包含大小写、特殊字符等),新手容易记混密码;若追求更高安全性,可输入 Y,后续按提示设置符合要求的密码。

  2. 设置 MySQL root 用户密码
    提示:New password:(输入密码),Re-enter new password:(再次输入密码确认)
    注意:密码建议设置为字母+数字+特殊字符,避免简单密码,输入时密码不会显示,直接输入即可,确认后按回车。

  3. 是否删除匿名用户(Anonymous Users)?
    提示:Remove anonymous users?
    输入 Y(建议删除,匿名用户会导致安全隐患,任何人无需密码即可登录 MySQL)。

  4. 是否禁止 root 用户远程登录?
    提示:Disallow root login remotely?
    新手建议输入 Y(禁止远程登录),仅允许本地登录,提升安全性;若需要在其他电脑远程连接 MySQL,后续可单独配置远程授权,此处先禁止。

  5. 是否删除 test 数据库(默认存在的测试数据库)?
    提示:Remove test database and access to it?
    输入 Y(建议删除,test 数据库无实际用途,留着可能存在安全隐患)。

  6. 是否刷新权限表(Reload Privilege Tables),使上述配置生效?
    提示:Reload privilege tables now?
    输入 Y(必须刷新,否则配置不会立即生效)。

所有选项配置完成后,会提示 All done!,说明 MySQL 安全配置已完成。

步骤6:登录 MySQL 服务器,验证安装配置

安全配置完成后,登录 MySQL 服务器,确认所有配置正常,执行登录命令:

mysql -u root -p

说明:-u 表示指定登录用户(此处为 root,MySQL 超级管理员),-p 表示需要输入密码,执行后会提示 Enter password:,输入步骤5中设置的 root 密码,按回车登录。

若登录成功,会进入 MySQL 命令行界面,显示 mysql> 提示符,说明 MySQL 安装和配置均正常。

可选测试操作(验证 MySQL 可正常使用):

# 查看 MySQL 版本
select version();
# 查看当前所有数据库
show databases;
# 退出 MySQL 命令行(返回系统终端)
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
  1. 以跳过权限验证的方式启动 MySQL
sudo mysqld_safe --skip-grant-tables &
  1. 新开一个终端,登录 MySQL(无需密码,直接回车)
mysql -u root
  1. 切换至 mysql 系统数据库
use mysql;
  1. 重置 root 密码(替换为你的新密码)
update user set authentication_string=password('你的新密码') where user='root' and host='localhost';
  1. 刷新权限
flush privileges;
  1. 退出 MySQL,关闭跳过权限的服务,重启 MySQL
exit;
sudo pkill mysqld
sudo systemctl start mysqld
  1. 用新密码重新登录
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`

授权远程用户登录(以 root 用户为例,仅用于测试,生产环境建议创建普通远程用户):

1. 登录 MySQL

mysql -u root -p

2. 授权 root 用户允许远程登录(替换为你的密码,% 表示允许所有IP连接,建议替换为具体IP)

grant all privileges on *.* to 'root'@'%' identified by '你的root密码' with grant option;

3. 刷新权限

flush privileges;

4. 退出 MySQL

exit;`

总结 

到此这篇关于CentOS 9安装配置MySQL数据库的文章就介绍到这了,更多相关CentOS9安装配置MySQL内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 本地windows安装两个mysql服务器,配置主从同步

    本地windows安装两个mysql服务器,配置主从同步

    大型网站为了缓解大量的并发访问,除了在网站实现分布式负载均衡,还会搭建服务器mysql集群技术,来分担主数据库的压力。在本地电脑能实现这样的技术吗,本地windows安装两个mysql服务器,配置主从同步也是可以实现的,快来跟着教程测试一下吧。
    2022-12-12
  • mysql修改数据库编码(数据库字符集)和表的字符编码的方法

    mysql修改数据库编码(数据库字符集)和表的字符编码的方法

    Mysql数据库是一个开源的数据库,应用非常广泛。以下是修改mysql数据库的字符编码的操作过程和将表的字符编码转换成utf-8的方法,需要的朋友可以参考下
    2014-03-03
  • Mysql多主一从数据备份的方法教程

    Mysql多主一从数据备份的方法教程

    这篇文章主要给大家介绍了关于Mysql多主一从数据备份的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起看看吧
    2018-12-12
  • 远程连接mysql报错“Host xxx is not allowed to connect to this MySQL server“简单解决办法

    远程连接mysql报错“Host xxx is not allowed to connect to th

    这篇文章主要给大家介绍了关于远程连接mysql报错“Host xxx is not allowed to connect to this MySQL server“的解决办法,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-07-07
  • mysql实现查询最接近的记录数据示例

    mysql实现查询最接近的记录数据示例

    这篇文章主要介绍了mysql实现查询最接近的记录数据,涉及mysql查询相关的时间转换、排序等相关操作技巧,需要的朋友可以参考下
    2018-07-07
  • mysql中GROUP_CONCAT的使用方法实例分析

    mysql中GROUP_CONCAT的使用方法实例分析

    这篇文章主要介绍了mysql中GROUP_CONCAT的使用方法,结合实例形式分析了MySQL中GROUP_CONCAT合并查询结果的相关操作技巧,需要的朋友可以参考下
    2020-02-02
  • MySQL 如何分析查询性能

    MySQL 如何分析查询性能

    这篇文章主要介绍了MySQL 如何分析查询性能,帮助大家更好的理解和学习使用MySQL,感兴趣的朋友可以了解下
    2021-05-05
  • MySQL 从一张表update字段到另外一张表中

    MySQL 从一张表update字段到另外一张表中

    使用MySQL 4.0版或更高更新您可以通过加入两个或多个表一起一表;通过加入两个表连同您可以更新一个表的记录在相关领域的总部设在另一个表。
    2015-09-09
  • MySQL中MTR的概念

    MySQL中MTR的概念

    这篇文章主要介绍了MySQL中MTR的概念,帮助大家更好的理解和使用MySQL数据库,感兴趣的朋友可以了解下
    2020-11-11
  • Mysql中IFNULL函数举例详解

    Mysql中IFNULL函数举例详解

    这篇文章主要给大家介绍了关于Mysql中IFNULL函数举例详解的相关资料,在MySQL数据库中IFNULL()函数用于将NULL值替换为另一个值,文中给出了详细的代码示例,需要的朋友可以参考下
    2023-07-07

最新评论