Linux(CentOS/Ubuntu)下使用yum/apt安装MySQL指南

小鹿同学
小鹿同学
发布时间:2026-11-02| 7人浏览过
原创

针对CentOS与Ubuntu两大主流Linux发行版,详解使用yum与apt包管理器安装MySQL 8.0的完整流程,涵盖软件源配置、服务启动、初始凭证获取、安全加固及常用管理命令。

在 Linux 服务器环境中,MySQL 数据库的安装主要通过各发行版自带的包管理器完成。由于 RedHat/CentOS 体系与 Debian/Ubuntu 体系在底层软件包结构、软件源策略及默认初始认证机制上存在显著区别,许多初学者在跨发行版操作时容易产生混淆。本文针对 CentOS(基于 yum/dnf)和 Ubuntu(基于 apt)两大主流环境,分别给出从配置软件源、执行安装、服务管理到执行安全初始化向导的标准落地步骤,帮助读者平稳完成 MySQL 8.0 的部署并掌握排查关键凭据的准确方法。

一、系统差异与仓库体系对比

在着手敲击安装命令之前,首先需要明确目标系统的软件仓库分发机制。Ubuntu 官方仓库对 MySQL 维护良好,其 main 仓库直接提供了名为 mysql-server 的元软件包;而 CentOS(特别是 CentOS 7/8 及兼容衍生版)官方源中默认优先推荐并集成了 MariaDB。若要在 CentOS 上安装原厂 MySQL,通常需要先导入官方提供的 RPM 仓库配置包(MySQL Community Yum Repository)。

Linux(CentOS/Ubuntu)下使用yum/apt安装MySQL指南
图 1:Ubuntu (apt) 与 CentOS (yum) 在仓库、软件包及初始认证层面的核心差异

二、Ubuntu 环境下使用 apt 安装 MySQL

在 Ubuntu 20.04 或 22.04 LTS 环境中,由于系统默认仓库已维护官方 MySQL 8.0 系列,安装过程相对直接。整个过程分为更新索引、安装服务包、启动服务以及初始化四个阶段。

1. 更新本地包索引并安装

在执行安装前,务必先同步软件源元数据,防止因本地索引过期导致依赖包校验失败:

Terminal (Bash)
# 1. 更新 apt 软件包索引
sudo apt update

# 2. 安装 MySQL 服务端组件
sudo apt install -y mysql-server

2. 启动服务与开机自启

安装完成后,Ubuntu 会自动启动守护进程并将服务注册为系统开机自启。可通过以下命令进行状态核对:

Terminal (Bash)
# 检查服务运行状态
sudo systemctl status mysql

# 确保开机自动启动处于激活状态
sudo systemctl enable mysql

正常情况下,控制台输出中应包含 Active: active (running) 绿色字样,表示守护进程 mysqld 已成功监听并进入工作状态。

三、CentOS 环境下使用 yum 安装 MySQL

在 CentOS 7、CentOS Stream 或基于 RHEL 的同构发行版中,直接运行 yum install mysql-server 要么提示找不到包,要么可能会安装 MariaDB。因此必须按规范走完“清理旧冲突、注册官方源、安装社区版”的标准路径。

Linux(CentOS/Ubuntu)下使用yum/apt安装MySQL指南
图 2:从环境清理、仓库配置到安全初始化的完整阶段流转

1. 检查并移除系统自带的 MariaDB 冲突

如果之前系统安装过 MariaDB,其保留的 mariadb-libs 可能会在安装 MySQL 时产生依赖冲突,建议先查询并清理:

Terminal (Bash)
# 检查当前环境是否残留 mariadb 相关包
rpm -qa | grep -i mariadb

# 若存在,使用 rpm 或 yum 卸载(以实际列出的包名为准)
sudo rpm -e --nodeps mariadb-libs

2. 注册官方 MySQL Yum 软件仓库

前往 MySQL 官方源镜像地址获取 RPM 仓库配置文件。以适用于 CentOS 7/EL7 的源为例(若是 EL8/EL9 相应替换对应大版本包):

Terminal (Bash)
# 下载并安装官方 yum repo 描述包
sudo rpm -Uvh https://repo.mysql.com/mysql80-community-release-el7-7.noarch.rpm

# 验证源是否成功添加
yum repolist enabled | grep "mysql.*-community"
特别提醒:CentOS 8 / RHEL 8 模块冲突处理

在 CentOS 8 或 Rocky Linux 8 中,系统默认将内部的 mysql 模块启用,这会导致 yum 忽略官方源直接报错。此时需要预先执行重置命令:sudo dnf module disable mysql,解除系统内置模块绑定后再执行安装。

3. 执行安装与启动守护进程

Terminal (Bash)
# 安装 MySQL 8.0 核心社区版
sudo yum install -y mysql-community-server

# 启动服务
sudo systemctl start mysqld

# 设置系统开机常驻自启
sudo systemctl enable mysqld

四、获取初始密码与执行安全加固

安装并首次启动服务后,MySQL 会完成数据目录 /var/lib/mysql 的初始化,但此时两个系统的超级管理员(root)访问权限有着不同的处理逻辑,必须针对性处置。

1. 两大系统的初次进入差异

  • Ubuntu (auth_socket 机制):Ubuntu 8.0 默认将 root@localhost 配置为使用操作系统的 auth_socket 插件。只要在系统层面拥有 sudo 权限,直接输入 sudo mysql 即可登录控制台,无需输入密码。如果需要兼容常规密码登录,可在进入数据库后执行:ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的强密码';
  • CentOS (随机临时密码):CentOS 服务首次启动时,会在日志中生成一个仅供单次使用的临时随机密码。需要使用 grep 命令从日志文件中提取该密码:
Terminal (Bash) - 提取 CentOS 临时密码
# 提取初始临时密码
sudo grep 'temporary password' /var/log/mysqld.log

# 预期输出类似如下格式(最后一段即为密码):
# [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: 3Xq!pL9#a?zK

2. 运行 mysql_secure_installation 安全向导

MySQL 随包提供了一个自动化加固脚本 mysql_secure_installation。无论在 Ubuntu 还是 CentOS 环境,强烈建议在生产或测试环境中完整运行该向导,依次完成四大关键安全决策:

Linux(CentOS/Ubuntu)下使用yum/apt安装MySQL指南
图 3:mysql_secure_installation 脚本四大安全决策项及生产建议

执行加固脚本的具体交互指令如下:

Terminal (Bash)
sudo mysql_secure_installation

根据终端提示,首先输入前面提取的临时密码(或在 Ubuntu 下直接设置新密码),然后依次回答 Y 启用验证、选择密码策略强度、确认新管理员密码,并依次对删除匿名用户、禁止远程 root 登录、删除 test 库并重载权限表回复 Y 完成整套强化。

五、登录验证与日常运维管理

加固完成后,可以通过本地 MySQL 客户端执行连接测试,并核对版本与连接身份:

Terminal (Bash)
# 使用 root 账号登录
mysql -u root -p

# 输入刚才设定的密码后进入交互环境,执行测试 SQL:
mysql> SELECT VERSION(), CURRENT_USER();
+-----------+----------------+
| VERSION() | CURRENT_USER() |
+-----------+----------------+
| 8.0.36    | root@localhost |
+-----------+----------------+
1 row in set (0.00 sec)

mysql> EXIT;

关键配置路径与日志文件对照

配置/资源类型 Ubuntu (apt) 默认路径 CentOS (yum) 默认路径
主配置文件 /etc/mysql/mysql.conf.d/mysqld.cnf /etc/my.cnf
数据存储目录 /var/lib/mysql /var/lib/mysql
服务错误日志 /var/log/mysql/error.log /var/log/mysqld.log
运行 Socket 文件 /var/run/mysqld/mysqld.sock /var/lib/mysql/mysql.sock
Systemd 服务标识 mysql.service mysqld.service
Linux(CentOS/Ubuntu)下使用yum/apt安装MySQL指南
图 4:MySQL 服务生命周期常用管理命令、排障路径与生产基线规范

六、总结

在 Linux 环境中安装 MySQL,核心不在于敲击几条安装命令,而在于理解两大系统体系背后的软件包分发逻辑:

  • 在 Ubuntu / Debian 环境下,官方源开箱即用,通过 apt install mysql-server 即可完成部署,其主要特性是初始采用 auth_socket 认证,本地可通过 sudo mysql 平滑接管。
  • 在 CentOS / RHEL 环境下,必须先清理潜在冲突的 mariadb-libs,并通过官方提供的 RPM 安装包注册 MySQL 官方 Yum 源,安装 mysql-community-server,初次启动后须在 /var/log/mysqld.log 中寻觅随机初始密码。

无论采用何种包管理器,部署完成后运行 mysql_secure_installation 剔除匿名账户、禁用 root 远程登录、清理测试数据库,都是确保数据库实例安全合规不可或缺的标准动作。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。