在进行服务器管理和数据库维护时,准确地知晓当前系统上安装的 MySQL 版本是一项至关重要的基础技能,版本信息不仅关系到功能特性的可用性、安全补丁的应用,也直接影响到与其他软件或应用程序的兼容性排查,当您在基于 CentOS 的服务器上操作时,可能会遇到不同的安装方式(如通过 yum/dnf 仓库、官方源码编译或 Docker 容器等),掌握多种查询方法能够灵活应对各种情况,本文将详细、系统地介绍在 CentOS 系统中查询 MySQL 版本的各种实用技巧,并对每种方法的适用场景进行解析,帮助您高效地获取所需信息。

最直接的方法:通过 MySQL 客户端查询
这是最常用且最准确的方法,因为它直接从数据库服务本身获取信息,无论 MySQL 服务器如何安装,只要客户端能够连接,这个方法就有效。
使用 SELECT VERSION(); 语句
这是在MySQL官方文档中推荐的标准方法,能够获取到精确的完整版本号。
-
登录到 MySQL 命令行客户端,打开终端,输入以下命令并按回车,系统会提示您输入密码。
mysql -u root -p
-u root:指定用户名为 root,您也可以使用其他有权限的用户。-p:提示输入密码,为了安全,建议不要在-p后面直接跟密码。
-
成功登录后,您将看到
mysql>提示符,在此提示符下,输入以下 SQL 查询语句并执行:SELECT VERSION();
-
执行后,MySQL 会返回一个包含版本信息的结果集,类似于:
+-----------+ | VERSION() | +-----------+ | 8.0.32 | +-----------+ 1 row in set (0.00 sec)
使用 STATUS; 或 \s 命令
这个命令不仅能提供版本信息,还会显示当前连接的详细状态,包括主机名、端口、连接ID、线程信息等,非常适合进行综合性的问题排查。
在 mysql> 提示符下,输入 STATUS; 或其快捷方式 \s 并执行:
STATUS;
或者
\s
输出结果会包含一个名为 Server version 的行,明确显示了版本号和分发信息(Linux on x86_64),示例如下:
--------------
mysql Ver 8.0.32 for Linux on x86_64 (MySQL Community Server - GPL)
Connection id: 12
Current database:
Current user: root@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: 8.0.32
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: utf8mb4
Db characterset: utf8mb4
Client characterset: utf8mb4
Conn. characterset: utf8mb4
UNIX socket: /var/lib/mysql/mysql.sock
Binary data as: Hexadecimal
Uptime: 3 hours 15 min 42 sec
Threads: 2 Questions: 58 Slow queries: 0 Opens: 139 Flush tables: 3 Open tables: 56 Queries per second avg: 0.004
--------------
无需登录的便捷方法:使用命令行标志
如果只是想快速查看版本,或者您没有数据库的登录凭据,可以利用 MySQL 客户端或服务自带的版本标志。
使用 mysql --version
这可能是最快的方法之一,直接在系统的 Shell 环境中执行即可。

打开终端,输入以下命令:
mysql --version
或者使用更短的 -V 标志:
mysql -V
该命令会立即返回版本信息,而无需连接到数据库服务器,输出结果格式通常会包含客户端版本,但大多数情况下它与服务版本保持一致,尤其当它们一同安装时,示例如下:
mysql Ver 8.0.32 for Linux on x86_64 (MySQL Community Server - GPL)
使用 mysqld --version
mysql 是客户端程序,而 mysqld 是 MySQL 的服务器守护进程(daemon),直接查询 mysqld 的版本可以确保获取到服务端的精确版本,这在某些客户端和服务版本不一致的特殊环境中非常有用。
mysqld --version
该命令同样会直接在终端打印版本信息:
/usr/sbin/mysqld Ver 8.0.32 for Linux on x86_64 (MySQL Community Server - GPL)
mysqld 的路径可能因安装方式而异,但通常 /usr/sbin/mysqld 是一个标准的系统路径。
通过包管理器查询:追溯安装源
了解 MySQL 是如何被安装的,对于日后的升级和维护至关重要,使用 CentOS 的包管理器可以查看到软件包的元数据。
使用 yum 或 dnf info 命令
在 CentOS 7 及更早版本上,使用 yum;在 CentOS 8 Stream 及更新版本上,使用 dnf,两者的命令语法基本一致。
-
你需要知道 MySQL 服务器的软件包名称,如果是从官方 MySQL 仓库安装的,名称通常是
mysql-community-server,如果是从 CentOS 默认或 EPEL/Remi 等第三方仓库安装的,可能是mariadb-server或mysql-server。 -
使用
info命令查询软件包信息,以mysql-community-server为例:yum info mysql-community-server
或者对于较新的系统:

dnf info mysql-community-server
如果不确定包名,可以先通过
yum search mysql或dnf search mysql进行搜索。 -
输出结果会包含
Version和Release字段,以及Repository字段(指明该软件包来自哪个仓库),这对于判断版本和来源非常关键。Installed Packages Name : mysql-community-server Version : 8.0.32 Release : 1.el7 Architecture : x86_64 Size : 1.2 G Source : mysql-community-8.0.32-1.el7.src.rpm Repository : @mysql80-community From repo : mysql80-community Summary : A very fast and reliable SQL database server URL : http://www.mysql.com License : GPLv2 with exceptions and LGPLv2 and BSD Description : The MySQL Community Server is a very fast, reliable, and : easy to use relational database management system.
各种查询方法对比
为了方便您根据不同场景选择最合适的方法,下表对上述几种常用方法进行了小编总结。
| 方法 | 命令 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|---|
| 客户端内部查询 | SELECT VERSION(); |
结果最精确、权威 | 需要数据库登录权限 | 脚本中获取版本、确认服务器实际运行版本 |
STATUS; 或 \s |
信息全面,包含连接状态 | 需要数据库登录权限 | 综合性故障排查、快速了解服务器概览 | |
| 命令行标志查询 | mysql --version |
快速便捷,无需登录 | 显示的是客户端版本(通常一致) | 快速检查、自动化脚本中获取版本号 |
mysqld --version |
无需登录,直接查看服务端版本 | 需要知道 mysqld 可执行文件路径 |
无法登录时确认服务端版本 | |
| 包管理器查询 | yum/dnf info ... |
无需登录,可追溯安装源和仓库 | 若非通过包管理器安装则无效 | 系统管理、软件升级、确认安装来源 |
特别注意事项:MariaDB 与 Docker 环境
- MariaDB:在许多 CentOS 版本中,MariaDB 是默认的数据库替代品,查询 MariaDB 版本的方法与 MySQL 几乎完全相同,只是返回的版本信息中会包含 "MariaDB" 字样,
5.22-MariaDB,您可以使用mysql --version或SELECT VERSION();来查询。 - Docker:MySQL 运行在 Docker 容器中,您需要在容器内部执行命令,可以使用
docker exec命令:docker exec -it <your_mysql_container_name> mysql --version
将
<your_mysql_container_name>替换为您实际的容器名称或ID。
相关问答 FAQs
我忘记了 MySQL root 用户的密码,但仍然需要检查数据库的版本,该怎么办?
解答: 这种情况很常见,您完全不需要登录数据库,最简单的方法是使用无需登录的命令行标志,在服务器的终端(Shell)中,直接执行 mysql --version 或 mysqld --version 这两个命令中的任何一个,都可以立即获取到版本信息,MySQL 是通过 yum 或 dnf 安装的,您也可以使用 yum info mysql-community-server 或 yum info mariadb-server 来查询软件包的版本记录。
为什么我用 yum info mysql-community-server 查询到的版本,和登录数据库后用 SELECT VERSION(); 查到的版本不一样?
解答: 这种不一致通常有以下几个可能的原因:
- 软件已更新但服务未重启:您可能已经通过
yum update更新了 MySQL 软件包,但新的进程还没有启动,系统上安装的文件是新版本,但内存中仍在运行的旧版本服务,解决方法是重启 MySQL 服务(systemctl restart mysqld或systemctl restart mariadb)。 - 安装来源非包管理器:MySQL 是通过二进制包解压或源码编译的方式手动安装的,
yum的数据库中不会有它的信息。yum info查询的是其自身仓库管理的软件包版本,这与您手动安装的版本无关。 - 查询了错误的软件包:可能您的系统同时存在多个 MySQL 或 MariaDB 的软件包(安装了
mysql-server但实际运行的是mariadb-server),请确认您查询的是当前正在运行的服务所对应的软件包。