CentOS系统是否自带MySQL,没有的话怎么安装?

CentOS 是否有 MySQL,这个问题的答案并非简单的“是”或“否”,而是取决于您使用的 CentOS 版本以及您所理解的“有”是指什么,深入探讨这个问题,需要我们回顾一下 CentOS、Red Hat Enterprise Linux (RHEL) 以及 MySQL 和 MariaDB 之间的历史渊源。

CentOS系统是否自带MySQL,没有的话怎么安装?

CentOS 7 及更早版本:MySQL 的黄金时代

在 CentOS 7 及其之前的版本中,答案是明确的“有”,在那个时期,MySQL 是 RHEL/CentOS 生态系统中默认且主流的关系型数据库管理系统,用户可以非常方便地通过系统自带的 yumrpm 包管理器直接安装 MySQL。

安装过程通常只需要一条简单的命令:

sudo yum install mysql-server

安装完成后,启动服务、设置开机自启并进行安全初始化,即可开始使用,对于当时大多数在 CentOS 上部署 Web 应用(如 LAMP 架构)的开发者和系统管理员来说,MySQL 是一个开箱即用、无需额外配置的组件,如果您仍在使用 CentOS 7 或更旧的系统,那么系统官方仓库中是原生支持 MySQL 的。

CentOS 8 及更新版本:MariaDB 成为默认

从 CentOS 8 开始,情况发生了显著变化,这一变化源于其上游 RHEL 8 的决策,由于 Oracle 收购 Sun Microsystems 后对 MySQL 的未来走向引发了社区的担忧,MySQL 的原始创建者 Michael “Monty” Widenius 发起了 MariaDB 项目,作为 MySQL 的一个分支。

MariaDB 在设计上与 MySQL 保持高度兼容,包括 API、命令行工具和客户端库,使得从 MySQL 迁移到 MariaDB 的成本极低,更重要的是,MariaDB 采用了更开放的开发模式,吸引了大量社区贡献,发展迅速,并增加了许多新特性。

考虑到这些因素,Red Hat 决定在 RHEL 8(以及随之而来的 CentOS 8 和 CentOS Stream)中,将默认的数据库实现从 MySQL 切换为 MariaDB,这意味着,当您在一个全新的 CentOS 8 系统上尝试使用 yum 安装 mysql-server 时,系统会提示找不到这个包,取而代之的是,您需要安装 mariadb-server

# 在 CentOS 8/Stream 上,这是安装默认数据库的方式
sudo dnf install mariadb-server

dnfyum 的后继者,在 CentOS 8 中成为默认的包管理器,系统默认的 AppStream 仓库中提供了多个版本的 MariaDB,但没有 MySQL。

如何在 CentOS 8/Stream 上安装 MySQL

尽管 MariaDB 成为了默认选项,但这并不意味着 CentOS 8/Stream 完全“没有”MySQL,用户仍然可以根据需要安装和使用官方的 MySQL,唯一的区别是,您不能直接使用系统默认仓库,而是需要添加 MySQL 官方提供的 Yum 仓库。

CentOS系统是否自带MySQL,没有的话怎么安装?

以下是在 CentOS 8/Stream 上安装 MySQL Community Server 的典型步骤:

  1. 下载并安装 MySQL 官方 Yum 仓库配置包
    访问 MySQL 官方网站的下载区域,找到适用于您系统的 Yum 仓库包,对于 CentOS 8,您可以使用 wget 下载 RPM 包并安装。

    sudo dnf install -y https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm
  2. 安装 MySQL Server
    成功添加仓库后,您就可以像安装其他软件一样,通过 dnf 来安装 MySQL 服务器了。

    sudo dnf install -y mysql-community-server
  3. 启动并启用 MySQL 服务
    安装完成后,启动 MySQL 服务,并设置其开机自启动。

    sudo systemctl start mysqld
    sudo systemctl enable mysqld
  4. 进行安全初始化
    MySQL 首次启动时会为 root 用户生成一个临时密码,您可以在日志文件中找到它,强烈建议运行 mysql_secure_installation 脚本来设置新密码、移除匿名用户、禁止远程 root 登录等,以提高安全性。

    sudo grep 'temporary password' /var/log/mysqld.log
    sudo mysql_secure_installation

通过以上步骤,您就可以在任何版本的 CentOS 上成功运行 MySQL 数据库了。

MySQL 与 MariaDB:如何选择?

既然两者都可以在 CentOS 上运行,那么该如何选择呢?下表可以帮助您做出决策。

特性维度 MySQL MariaDB
来源与维护 由 Oracle 公司维护和开发。 由社区主导的非营利组织 MariaDB Foundation 维护,开放透明。
兼容性 作为标准,许多应用为其优化。 与 MySQL 高度兼容,但新版本可能引入一些差异。
存储引擎 以 InnoDB 为主,功能强大稳定。 除了 InnoDB 和 MyRocks,还提供更多如 ColumnStore、Spider 等特色引擎。
性能 在特定场景下(如高并发读写)表现优异。 在某些复杂查询和特定存储引擎下可能性能更佳。
默认支持 CentOS 7 及更早版本。 CentOS 8/Stream 及更新版本的默认选择。

选择建议:

CentOS系统是否自带MySQL,没有的话怎么安装?

  • 对于新项目或在 CentOS 8/Stream 上: 如果没有特殊依赖(如必须使用 Oracle 提供的特定 MySQL 功能),直接使用系统默认的 MariaDB 是最简单、最省心的选择,它与主流 Web 应用栈兼容性良好,且维护方便。
  • 对于遗留系统或特定需求: 如果您的应用是基于特定 MySQL 版本开发的,或者需要使用 Oracle 企业版的高级特性,那么在 CentOS 8/Stream 上通过官方仓库安装 MySQL 是必要的。

CentOS 生态中始终存在 MySQL 的身影,只是随着社区和技术的发展,它在系统中的地位从“默认”变成了“可选”,理解这一变化,并根据您的实际需求做出正确的选择,是成功部署和管理数据库的关键。


相关问答FAQs

我已经在 CentOS 8 上安装了 MariaDB,现在想切换到 MySQL,该怎么做?

解答: 从 MariaDB 切换到 MySQL 是可行的,但需要谨慎操作,因为它们共享一些配置文件和端口,核心步骤如下:

  1. 备份数据: 这是最重要的一步,使用 mysqldump 工具将您在 MariaDB 中的所有数据库导出为 SQL 文件。mysqldump -u root -p --all-databases > all_databases.sql
  2. 停止并卸载 MariaDB: 停止 MariaDB 服务 (sudo systemctl stop mariadb),然后使用 dnf 彻底卸载 MariaDB 服务器和客户端包 (sudo dnf remove mariadb-server mariadb),建议删除 /etc/my.cnf.d/ 目录下的 MariaDB 配置文件,以避免冲突。
  3. 安装 MySQL: 按照上文所述,添加 MySQL 官方仓库,并安装 mysql-community-server
  4. 启动 MySQL 并恢复数据: 启动 MySQL 服务,进行安全初始化,然后登录 MySQL,使用之前备份的 SQL 文件恢复数据:mysql -u root -p < all_databases.sql
  5. 验证: 检查您的应用程序是否能正常连接和操作数据库。

CentOS Stream 9 作为滚动更新版本,是否也默认使用 MariaDB 而不是 MySQL?

解答: 是的,CentOS Stream 9 延续了 CentOS 8 的策略,在其官方的 AppStream 仓库中,默认提供的数据库实现是 MariaDB,如果您在全新的 CentOS Stream 9 系统上直接使用 dnf install mariadb-server,即可安装 MariaDB,而如果您需要安装 MySQL,同样需要遵循与 CentOS 8 类似的流程,即先添加 MySQL 官方针对 RHEL 9/CentOS Stream 9 的 Yum 仓库,然后再通过 dnf 进行安装,这个策略预计将在未来的 RHEL/CentOS 版本中持续下去。

【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!

(0)
热舞的头像热舞
上一篇 2025-10-29 00:23
下一篇 2025-10-29 00:29

相关推荐

  • CentOS服务器数据如何实现全自动定时备份到群晖NAS?

    在信息技术高速发展的今天,数据已成为企业和个人最宝贵的资产之一,对于运行着关键业务服务的CentOS服务器而言,一个稳定、可靠、自动化的备份策略是保障业务连续性的最后一道防线,群晖网络附加存储(NAS)凭借其强大的数据管理能力、灵活的备份套件和出色的性价比,成为了备份CentOS服务器的理想选择,它不仅能提供集……

    2025-10-13
    005
  • CentOS 7网络UUID是什么,在哪里可以查看修改?

    在 CentOS 7 的网络管理中,UUID(通用唯一识别码)扮演着一个至关重要的角色,它是一个 128 位的数字,用于唯一标识系统中的网络连接配置,理解并正确管理网络 UUID,对于确保网络服务的稳定性和可预测性至关重要,尤其是在虚拟化和自动化部署环境中,什么是网络 UUID?UUID 的全称是 Univer……

    2025-10-16
    005
  • from obs import obsclient_OBS客户端初始化(Python SDK)

    要使用OBS客户端初始化(Python SDK),首先需要安装obsclient库,然后导入obsclient模块。创建一个obsclient.ObsClient实例,传入访问密钥、秘密密钥和服务器URL。这样就可以使用OBS客户端进行相关操作了。,,解析:,1. 安装obsclient库,2. 导入obsclient模块,3. 创建obsclient.ObsClient实例,4. 传入访问密钥、秘密密钥和服务器URL,,代码:,“python,# 安装obsclient库,!pip install obsclient,,# 导入obsclient模块,import obsclient,,# 创建obsclient.ObsClient实例,access_key = ‘your_access_key’,secret_key = ‘your_secret_key’,server_url = ‘your_server_url’,client = obsclient.ObsClient(access_key, secret_key, server_url),“

    2024-07-08
    0025
  • 如何确保福州外贸网站制作中的镜像效果符合国际标准?

    福州外贸网站制作涉及构建一个针对国际市场的在线平台,以促进当地企业与全球买家之间的贸易交流。镜像站点是在不同地理位置放置相同的网站内容,以提高访问速度和可靠性。

    2024-07-27
    004

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

广告合作

QQ:14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信