MySQL 获取版本号的 N 种方法(全网最全以及避坑大全)

 更新时间:2026年09月04日 09:16:30   作者:Marathon_X  
本文主要介绍了MySQL 获取版本号的 N 种方法,揭秘常见误区,帮你避坑选对方式,精准识别客户端与服务端版本,轻松获取数据库动态信息

相信大家在工作学习中经常有需要查询 MySQL 数据库版本的情况,这里给大家介绍几种在 MySQL 中查询数据库版本的方法以及每种方法适用的场景,相信总有一种可以帮到你。

另外,作者在写这篇文章的时候查看了全网多篇热门文章,发现了其中一些文章介绍的方法的疏漏,所以最后还有一个章节告诉你网上有哪些方法是错误的,不要错过哦。

方法1:通过 SQL 查询

如果可以连接上数据库并且可以执行 SQL,那么可以直接用 SQL 查看,下边的两种 SQL 都可以查询出来版本号:

写法1:

SELECT VERSION();

写法2:

SELECT @@VERSION;

执行 SQL 的查询结果示例:

+------------+
| version()  |
+------------+
| 5.7.16-log |
+------------+

方法2:通过命令行

如果可以直接通过命令行连接到数据库。

方法2.1:命令行刚连上数据库时

在命令行使用 mysql 命令连接数据库的时候,刚连上之后,从输出的信息中可以看到数据库的版本,示例:

> mysql -uroot -p
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 5
Server version: 5.7.16-log MySQL Community Server (GPL)

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.

mysql>

其中 Server version: 5.7.16-log MySQL Community Server (GPL) 这一行我们就可以看出 MySQL 数据库的版本。

方法2.2:使用 status 命令

如果我们已经通过 mysql 命令连接上了数据库,还可以通过 status 命令或者 s 查看数据库的版本信息以及数据库的相关状态。

示例1:

mysql> status
--------------
mysql  Ver 8.0.33 for Win64 on x86_64 (MySQL Community Server - GPL)  <--------------- 这里是 mysql 客户端(命令行工具)的版本 

Connection id:          5
Current database:
Current user:           root@localhost
SSL:                    Not in use
Using delimiter:        ;
Server version:         5.7.16-log MySQL Community Server (GPL) <--------------- 这里才是 MySQL 服务端的版本
Protocol version:       10
Connection:             localhost via TCP/IP
Server characterset:    utf8
Db     characterset:    utf8
Client characterset:    utf8
Conn.  characterset:    utf8
TCP port:               3306
Uptime:                 2 hours 40 min 24 sec

Threads: 2  Questions: 213  Slow queries: 0  Opens: 111  Flush tables: 1  Open tables: 104  Queries per second avg: 0.022

示例2:

mysql> s
--------------
mysql  Ver 8.0.33 for Win64 on x86_64 (MySQL Community Server - GPL)  <--------------- 这里是 mysql 客户端(命令行工具)的版本 

Connection id:          5
Current database:
Current user:           root@localhost
SSL:                    Not in use
Using delimiter:        ;
Server version:         5.7.16-log MySQL Community Server (GPL) <--------------- 这里才是 MySQL 服务端的版本
Protocol version:       10
Connection:             localhost via TCP/IP
Server characterset:    utf8
Db     characterset:    utf8
Client characterset:    utf8
Conn.  characterset:    utf8
TCP port:               3306
Uptime:                 2 hours 40 min 24 sec

Threads: 2  Questions: 213  Slow queries: 0  Opens: 111  Flush tables: 1  Open tables: 104  Queries per second avg: 0.022

扩展:方法3:通过 version_comment 辨别开源版本和魔改版本

SHOW VARIABLES LIKE 'version_comment';

这个方法实际上查看的是 MySQL 的版本备注信息。

示例:

+-----------------+------------------------------+
| Variable_name   | Value                        |
+-----------------+------------------------------+
| version_comment | MySQL Community Server (GPL) |
+-----------------+------------------------------+

version_comment 实际上是数据库的一个全局变量,对于开源社区版本来说,这个变量的值都是一样的。但是有一些基于 MySQL 开发或者和 MySQL 兼容的数据库,当需要和 MySQL 进行区分的时候,就可以根据这个全局变量来区分。

比如 TiDB 数据库执行之后查询出来的结果示例:

TiDB Server (Apache License 2.0) Community Edition, MySQL 5.7 compatible

StarRocks 数据库执行之后查询出来的结果示例:

StarRocks version 3.0.3

扩展:方法4:查看所有和版本相关的信息

前边我们介绍了通过全局变量 version_comment 查看 MySQL 具体的编译版本的方法,那么你是否会想?MySQL 中和版本相关的信息还有别的吗?接下来就介绍一种方法,教你把全局变量中和版本相关的信息一网打尽。

执行下边这个 SQL 可以查看所有变量名称中带有 version 的变量。

SHOW GLOBAL VARIABLES LIKE '%version%';

执行后的示例结果:

+-------------------------+------------------------------+
| Variable_name           | Value                        |
+-------------------------+------------------------------+
| innodb_version          | 5.7.16                       |
| protocol_version        | 10                           |
| slave_type_conversions  |                              |
| tls_version             | TLSv1,TLSv1.1                |
| version                 | 5.7.16-log                   |
| version_comment         | MySQL Community Server (GPL) |
| version_compile_machine | x86_64                       |
| version_compile_os      | Win64                        |
+-------------------------+------------------------------+

全网纠错

纠错1:mysql --help 或者 mysql -V 方式

有的文章会教你用 mysql --help 或者 mysql -V 或 mysql --version 的方式查看数据库版本。

但是这种方式,实际上查看的是 mysql 客户端(命令行工具)的版本,而不是 MySQL 数据库服务端的版本。

纠错2:通过 rpm 等包管理工具查看版本

有的文章会教你使用 rpm -qa | grep mysql 这种方式查看服务器安装的版本。

这种方法的限制条件在于:

(1)这种方法只能在安装 MySQL 数据库的服务器上执行。

(2)仅适用于使用 rpm 包管理工具的部分 Linux 操作系统

这种方法可能的坑点在于:

服务器上实际运行的 MySQL 和包管理工具查询出来的可能并不是同一个 SQL。因为这种方法查询出来的仅仅是通过包管理工具安装的 SQL 的版本。但是实际运行的 MySQL 有可能是通过压缩包离线安装的并不是通过包管理工具安装的,这种情况下服务器上可能同时有多种版本的 MySQL。甚至有可能是通过 docker 等虚拟化软件运行的,所以要避免被这种情况给误导了。

后记

为什么要写这篇文章?大家在工作生活中遇到的场景总是纷繁复杂的,即使是简单的问题也往往会有一些坑点,也往往是这种坑点,让人稍不注意就会绕了弯路,比如上边使用 status 命令的时候,同时输出了客户端和服务端版本,不注意的话就容易看错。本文正是希望把一个简单场景梳理清楚,同时把坑点给说清楚,让大家在工作学习中遇到类似场景的时候少走弯路,希望对大家有帮助。

到此这篇关于MySQL 获取版本号的 N 种方法(全网最全以及避坑大全)的文章就介绍到这了,更多相关MySQL 获取版本号内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • MySQL中的undo日志

    MySQL中的undo日志

    这篇文章主要介绍了MySQL中的undo日志的相关资料,帮助大家更好的理解和学习MySQL的相关知识,感兴趣的朋友可以了解下
    2020-11-11
  • MySQL多表关联查询join的四种类型及使用场景总结

    MySQL多表关联查询join的四种类型及使用场景总结

    在关系型数据库中,数据通常会被存储在不同的表中,为了从这些分散的表中获取有用的信息,我们需要使用JOIN操作来将这些表连接在一起,这篇文章主要介绍了MySQL多表关联查询join的四种类型及使用场景的相关资料,需要的朋友可以参考下
    2026-07-07
  • 深入了解SQL注入

    深入了解SQL注入

    本篇文章通过SQL和MYSQL的对比,以及SQL注入的原理等方面详细分析了SQL注入相关知识点,对此有兴趣的朋友学习下。
    2018-02-02
  • mysql中查询字段为null的数据navicat问题

    mysql中查询字段为null的数据navicat问题

    这篇文章主要介绍了mysql中查询字段为null的数据navicat问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • MySQL Binlog三种记录格式核心原理

    MySQL Binlog三种记录格式核心原理

    Binlog是 MySQL 核心特性之一,用于记录数据变更操作,支撑主从复制、数据恢复等关键场景,本文将深入解析MySQL Binlog三种主流格式的差异、选型逻辑及配置方法,感兴趣的朋友跟随小编一起看看吧
    2026-02-02
  • mysql 8.0.12 安装配置方法并修改密码

    mysql 8.0.12 安装配置方法并修改密码

    这篇文章主要为大家详细介绍了mysql 8.0.12 安装配置,及修改密码的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-08-08
  • Mysql中单表和多表DQL查询语句详解

    Mysql中单表和多表DQL查询语句详解

    这篇文章主要为大家详细介绍了Mysql中单表和多表DQL查询语句的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2025-10-10
  • Mysql之SQL执行流程全面解析

    Mysql之SQL执行流程全面解析

    MySQL的执行流程包括查询缓存、解析器、优化器和执行器,首先,查询缓存检查是否存在查询结果,如果存在则直接返回;如果不存在,则进入解析器进行语法和语义分析,解析器将SQL语句转换为语法树,并进行词法和语法分析,接着,优化器确定最佳执行路径
    2024-12-12
  • 貌似很强的mysql备份策略分享

    貌似很强的mysql备份策略分享

    貌似很强的mysql备份策略,号称天下无敌,哈哈,有需要的朋友参考下吧
    2013-02-02
  • 安装mysql8.0.11及修改root密码、连接navicat for mysql的思路详解

    安装mysql8.0.11及修改root密码、连接navicat for mysql的思路详解

    这篇文章主要介绍了安装mysql8.0.11以及修改root密码、连接navicat for mysql,需要的朋友可以参考下
    2018-06-06

最新评论