检查 MySQL 版本 Ubuntu

2025年3月17日 | 阅读 12 分钟

MySQL 简介

MySQL 是一个开源的 RDMS (关系型数据库管理系统)。它的名字由联合创始人 Michael Widenius 女儿的名字 “My”“SQL” 组成,SQL 代表 Structured Query Language (结构化查询语言)。关系型数据库将数据管理在多个数据表中,其中数据类型可能彼此相关;这些关系有助于数据的结构化。

结构化查询语言是一种程序员用来通过关系型数据库建立、更改和提取数据以及控制用户对数据库访问的语言。除了 SQL 和关系型数据库以及 RDMS,例如 MySQL 还与操作系统协同工作,以在计算机的存储系统中实现关系型数据库。它允许网络访问并提供备份创建和数据库完整性测试。

一些关键点如下:

  • MySQL 是根据 GNU 通用公共许可证 条款提供的开源免费软件,也以一系列专有许可证提供。
  • 它曾由 MySQL AB(一家瑞典公司)赞助和拥有,后来被 Sun Microsystems (Oracle Corporation) 收购。
  • 当 Oracle 继承 Sun 时,Widenius 于 2010 年分叉了 MySQL 的开源项目,创建了 MariaDB
  • MySQL 包含独立的客户端,允许用户直接使用 SQL 与 MySQL 数据库交互,但 MySQL 与多个程序一起使用,以实现需要关系型数据库功能的应用程序。
  • MySQL 是 LAMP Web 应用程序软件堆栈的组成部分,LAMP 代表 Linux、Apache、MySQL、Python/PHP/Perl。
  • MySQL 被多个数据库驱动的 Web 应用程序使用,例如 WordPress、phpBB、Joomla 和 Drupal。此外,MySQL 还被多个著名网站使用,包括 YouTube、Twitter、MediaWiki、Flickr 和 Facebook。

MySQL 概述

MySQL 使用 C++ 和 C 编程语言编写。SQL 的 SQL 解析器使用 yacc 编写,尽管它使用自制的词法分析器。此外,MySQL 在多个系统平台运行,例如 Tru64、Sanos、SCO UnixWare、SCO OpenServer、SunOS、Symbian、Oracle Solaris、QNX、OS/2 Warp、OpenSolaris、OpenBSD、Novell NetWare、NetBSD、Microsoft Windows、macOS、Linux、IRIX、IBM i、eComStation、ArcaOS、HP-UX、FreeBSD、BSDi 和 AIX。

此外,MySQL 也有 OpenVMS 端口。MySQL 客户端库和服务器软件本身采用双重许可分发。它们在专有许可证和 GPLv2 下提供。支持可以通过官方手册获得。此外,在不同的 IRC 论坛和频道中也存在免费支持。

Oracle 通过其 MySQL Enterprise 产品提供有偿支持。这些产品的价格和服务范围各不相同。一些第三方组织也提供服务和支持。

MySQL 简史

MySQL 由瑞典公司 MySQL AB 开发,该公司由芬兰人 Michael "Monty" Widenius、Allan Larsson 和瑞典人 David Axmark 创立。Axmark 和 Widenius 于 1994 年开始 MySQL 的原始开发。MySQL 的首次发布于 1995 年 5 月 23 日。

最初,MySQL 是为个人使用而构建的,它基于低级语言 ISAM,创建者承认它不够灵活且太慢。他们创建了一个新的 SQL 接口,同时保留了与 mSQL 相似的 API。通过保持与 mSQL 系统相同的 API,许多开发人员可以使用 MySQL 而不是 mSQL 的前身。

其他 MySQL 开发里程碑包括:

  • 1995 年 5 月 23 日首次内部版本
  • 3.19 版本:1996 年底
  • 3.20 版本:1997 年 1 月
  • Windows 版本于 1998 年 1 月 8 日发布,支持 Windows NT 和 98。
  • 3.21 版本:1998 年生产发布,通过 mysql.com
  • 3.22 版本:1998 年开始的测试版、Alpha 版
  • 3.23 版本:2000 年 6 月开始的测试版,2001 年 1 月 22 日生产发布。
  • 4.0 版本:2002 年 8 月开始的测试版,2003 年 3 月生产发布。
  • 4.1 版本:2004 年 6 月开始的测试版,2004 年 10 月生产发布(B 树和 R 树、预处理语句、子查询)。
  • 5.0 版本:2005 年 3 月开始的测试版,2005 年 10 月生产发布(游标、触发器、存储过程、视图、XA 事务)。
    • Federated 存储引擎的开发者表示,“Federated 存储引擎是一个概念验证存储引擎”,尽管 MySQL 5.0 版本的主要发行版默认添加并激活了它。一些缺点在 “MySQL Federated Tables: The Missing Manual” 中有记载。
  • 2008 年,Sun Microsystems 收购了 MySQL AB。
  • 5.1 版本:2008 年 11 月 27 日生产发布(分区、事件调度器、插件 API、服务器日志表、基于行的复制)。
    • 5.1 版本包含了 20 个已知的错误和崩溃结果错误,此外还有 5.0 版本中存在的 35 个错误。
    • MySQL 的 6.0-alpha 和 5.1 版本在数据仓库使用时表现出较差的性能——部分原因是其无法使用两个或更多 CPU 核来处理单个查询。
  • 2010 年 1 月 27 日,Oracle 收购了 Sun Microsystems。
  • 在 Oracle 披露收购 Sun 时,Michael "Monty" Widenius 分叉了 MySQL,发布了 MariaDB。
  • MySQL Server 5.5 版本普遍可用。一些功能和增强功能包括:
    • InnoDB 是默认存储引擎,支持参照完整性约束和事务。
    • 升级的 InnoDB I/O 子系统
    • 半同步复制
    • 升级的 SMP 支持
    • 支持 Unicode 的 utf8mb4、utf32 和 utf16 补充字符集。
    • 符合 SQL 标准的 RESIGNAL 和 SIGNAL 语句。
    • 新的分区选项(用户定义)。
  • 作为 6.0 系列的最终版本,MySQL Server 6.0.11-alpha 版本于 2009 年 5 月 22 日宣布。MySQL Server 的未来开发采用新的发布模型。为 6.0 版本开发的功能正在合并到未来的版本中。
  • MySQL 5.6 于 2013 年 2 月全面发布。新增功能包括 InnoDB 中更高的事务带宽、查询优化器的性能升级、新的 NoSQL 风格的 Memcached API、对分区功能的改进以管理和查询大型表、复制改进、精确存储毫秒的 TIMESTAMP 列类型,以及通过增加 PERFORMANCE_SCHEMA 中的数据来提高性能考虑。此外,InnoDB 存储引擎还增加了对升级的组提交性能和全文搜索的支持。
  • MySQL 5.7 于 2015 年 10 月全面发布。从 MySQL 5.7.8 版本开始,MySQL 支持由 RFC 7159 指定的 JSON 数据类型。
  • MySQL Server 8.0 版本于 2018 年 4 月发布。它包括 NoSQL 文档存储、JSON 扩展语法、崩溃安全和原子 DDL 语句、新功能(包括部分更新、改进的排序和 JSON 表函数)。
  • MySQL 被 DB-Engines 排名选为 2019 年的 DBMS。

MySQL 的特性

MySQL 提供两种不同的版本:专有企业服务器开源 MySQL 社区服务器。MySQL 企业服务器具有一系列专有扩展,它们作为服务器插件安装,但共享版本编号系统并由相似的代码库创建。

MySQL 的一些主要功能如下:

Check MySQL Version Ubuntu
  • 广泛的 ANSI SQL 99 子集及扩展
  • 跨平台支持
  • 使用紧密遵循 PSM/SQL 的过程语言的存储过程
  • 游标
  • 触发器
  • 可更新视图
  • 信息模式
  • 使用 InnoDB 存储引擎 时支持在线 DDL (数据定义语言)
  • 一组 SQL 模式选项,用于控制运行时行为,包括遵循 SQL 标准的严格模式。
  • 性能模式,用于聚合和收集查询性能和服务器执行统计信息,以便进行监控
  • 使用默认的 InnoDB 存储引擎时支持带 保存点 的事务。此外,NDB Cluster 存储引擎 也支持事务。
  • 支持 X/Open XA DTP (分布式事务处理);作为默认 InnoDB 存储引擎的一部分,它支持两阶段提交
    SSL 支持
  • 使用 NDB Cluster 和 InnoDB 存储引擎时符合 ACID 标准
  • 子 SELECT (例如 嵌套 SELECT)
  • 查询缓存
  • 支持内置复制
    Check MySQL Version Ubuntu
    • 同步复制:在这种复制类型中,MySQL Cluster 提供多主复制。
    • 半同步复制:这是一种主从复制,其中主服务器等待复制完成。
    • 异步复制:这也是一种主从复制,从一个主服务器到多个从服务器,或从多个主服务器到一个从服务器。
    • 虚拟同步:这种复制类型可以通过内置的 Group Replication 插件或 Galera Cluster 实现自管理的 MySQL 服务器组,并支持多主。
  • 或 Galera Cluster。
  • 数据库嵌入式库
  • 全文搜索和索引
  • Unicode 支持
  • MySQL Cluster 的无共享集群
  • 带有优化器中的分区剪枝的分区表
  • 多个存储引擎,允许用户选择最适合应用程序中所有表的存储引擎。
  • 将多个连接中的多个事务和提交分组在一起,以增加每秒的提交数
  • 原生存储引擎,例如 NDB Cluster Blackhole、CSV、Archive、Federated、Memory (heap)、Merge、MyISAM 和 InnoDB。
  • 开发者大约每两个月发布一次小的 MySQL 服务器更新。
  • 源代码可以从 MySQL 网站或 MySQL 的 GitHub 仓库获取,两者均基于 GPL 许可。

MySQL 的局限性

当使用除 InnoDB 默认存储引擎之外的存储引擎时,MySQL 在某些实现功能(如外键引用)方面不完全符合完整的 SQL 标准。此外,在 MySQL 8.0.15 版本之前,所有存储引擎都会识别但忽略检查约束。

MySQL 的部署

MySQL 可以手动从源代码构建和安装,但除非需要独特的定制,否则通常使用二进制包安装。软件包管理系统可以在几乎所有 Linux 发行版上以基本的工作量安装 MySQL,但需要进一步配置以调整优化和安全设置。

MySQL 最初是作为更强大的专有数据库的低端替代品,逐渐发展到支持更大规模的需求。尽管如此,它仍然更常用于中小规模的单服务器部署,无论是作为独立的数据库服务器还是 基于 LAMP 的 Web 应用程序中的一个组件。MySQL 的大部分吸引力源于其相应的易用性和简单性,这得益于 phpMyAdmin 等开源工具生态系统。

一些关键点如下:

  • MySQL 可以通过将其部署在更强大的硬件上(例如具有数 GB 内存的多处理器服务器)来扩展。
  • 但是,单个服务器上的工作扩展存在一些限制。
  • 多服务器 MySQL 部署需要在大规模上提供更高的可靠性和性能。
  • 一个常见的高端配置可能包含一个强大的主数据库,它管理数据写入操作,并复制到多个从数据库,这些从数据库管理所有读取操作。
  • 通过使用内存中的 memcached 缓存数据库查询结果,或者将数据库分解为称为 “分片” 的更小部分,这些分片可以在几个分布式服务器集群中进行扩展,可以实现进一步的性能改进。

云部署

MySQL 可以在许多云计算平台运行,例如 Oracle Cloud Infrastructure、Amazon EC2、Microsoft Azure 等。一些基本的云上 MySQL 开发模型如下:

Check MySQL Version Ubuntu

虚拟机镜像

云用户可以使用已安装 MySQL 的机器镜像上传,或者使用已优化安装 MySQL 的现成机器镜像,例如 Amazon EC2 提供的这种实现。

MySQL 即服务

一些云平台可以提供 MySQL “即服务”。在这种实现中,应用程序所有者无需安装和管理自己的 MySQL 数据库。数据库服务提供商负责安装和维护数据库,而应用程序所有者则根据使用情况付费。

一些值得注意的云计算 MySQL 服务有 Jelastic、Heroku、HP Converged Cloud、Rackspace、Azure Database for MySQL、Oracle MySQL Cloud Service 和 Amazon Relational Database Service。

高可用性应用

Oracle MySQL 提供了一个高可用性解决方案,结合了 MySQL shell 和 MySQL 路由器等工具。它们基于开源的组复制工具。MariaDB 在产品条款中提供了相同的服务。

MySQL 用户界面

Check MySQL Version Ubuntu

图形用户界面

GUI 是一种界面,允许用户通过视觉指示器和图形图标(如辅助符号)与程序或电子设备进行交互,而不是通过文本导航、键入的命令标签或基于文本的界面。

有免费的图形化管理和第三方专有应用程序,它们与 MySQL 一起开发,允许用户可视化地实现数据和数据库结构。

MySQL Workbench

对于 MySQL,MySQL Workbench 是开发环境。它由 MySQL AB 集成,允许用户可视化地创建数据库结构并以图形方式管理 MySQL 数据库。

MySQL Workbench 有三个不同的版本。第一个是基本的开源免费 社区版,可以通过 MySQL 网站下载;第二个是专有的 标准版,它改进和扩展了社区版的功能集;第三个是 MySQL Cluster CGE

其他 GUI 工具

  • Webmin
  • Toad for MySQL
  • SQLyog
  • SQLBuddy
  • phpMyAdmin
  • org Base
  • Navicat
  • LibreOffice Base
  • HeidiSQL
  • DBEdit
  • DBeaver
  • Database Workbench
  • Adminer

命令行界面

命令行界面是与计算机程序交互的一种定义,用户通过输入连续的文本行(命令行)向程序发出命令。MySQL 附带了多个命令行工具,其中主要的界面是 mysql 客户端

MySQL 工具集是一组用于执行常见的管理和维护操作的工具。这些工具是从 Oracle 独立下载的,最初作为 MySQL Workbench 的一部分添加。

MySQL shell 交互式地用于 MySQL 数据库管理。它支持 SQL、Python 或 JavaScript 模式,也可以用于访问和管理目的。

MySQL 应用程序编程接口

多种编程语言包含库,用于通过特定语言的 API 访问 MySQL 数据库。这些包括用于 CLI/.NET 语言的 MySQL Net/Connector 和用于 Java 的 JDBC 驱动程序。

一个名为 MySQL Connector/ODBC 的 ODBC 接口允许支持 ODBC 接口的其他编程语言与 MySQL 数据库通信,例如 ColdFusion 或 ASP。HTSQL(一种基于 URL 的查询方法也与 MySQL 适配器一起使用,允许任何 Web 客户端通过结构化 URL 直接与 MySQL 数据库交互)。还有许多其他驱动程序可用于 Node.js 或 Python 等语言。

MySQL 项目分支

有多种 MySQL 分支可用,包括以下内容:

Check MySQL Version Ubuntu

电流

Percona Server for MySQL

它由 Percona 分支而来,专注于与 MySQL 官方版本保持紧密兼容。XtraDB 也被添加到 Percona Server for MySQL 中,它是 Percona 对 InnoDB 存储引擎的分支。

MariaDB

它是一个社区开发的 MySQL 关系型数据库管理系统分支,旨在根据 GNU GPL 保持免费。这个分支由真正的 MySQL 开发者领导,他们由于对 Oracle 的执行方式感到担忧而分叉了它。

已废弃

OurDelta

它由 Open Query(一家澳大利亚公司)创建,但后来被 Catalyst IT Australia 继承。它有两个不同的版本。第一个是基于 MySQL 的 5.0 版本,第二个是基于 MariaDB 的 5.1 版本。它添加了由 Open Query 和其他著名的 MySQL 社区成员(包括 GoogleJeremy Cole)集成的补丁。

WebScaleSQL

它是一个 MySQL 5.6 软件分支,于 2014 年 3 月 27 日由 Twitter、LinkedIn、Google 和 Facebook 联合发布,旨在提供一个集中的开发结构,以扩展 MySQL,添加特定于其大规模部署的新功能,例如构建在服务器集群上运行的更大复制数据库。

毛毛雨

它是一个开源免费的关系型数据库管理系统,是从现已 defunct 的 MySQL DBMS 6.0 开发分支中分叉出来的。Drizzle 包含客户端/服务器架构,并像 MySQL 一样使用 SQL 作为其主要命令语言。Drizzle 基于 GNU GPL 的第二和第三版本部署,其中许多部分(包括复制消息和协议驱动程序)基于 BSD 许可证。

在 Ubuntu 中检查 MySQL 版本

前提条件

在开始之前,请确保我们已经:

  • 安装并挂载了 MySQL 服务器
  • 拥有 root 访问权限或启用了 sudo 账户

满足上述要求后,我们就可以开始了。

使用 Systemd 检查 MySQL 状态

Systemd 是一个强大的 Linux 服务管理器和初始化系统,它允许监控、停止和启动服务和守护进程的状态。此外,它还提供跟踪和记录使用情况等功能。因此,它是所有系统管理员的基本工具。

我们需要使用以下命令来使用 systemd 检查 MySQL 服务:

成功运行上述命令后,systemd 将启动服务,假设它没有遇到错误。我们需要使用以下命令来检查服务状态:


Check MySQL Version Ubuntu

它将向我们提供以下输出,显示服务处于活动状态。

使用 MySQLadmin 检查 MySQL 状态

我们也可以使用像 mysqladmin 这样的工具。MySQL admin 是一个 MySQL 服务器管理命令行实用程序,用于检查 MySQL 服务器状态。我们可以使用以下命令:


Check MySQL Version Ubuntu

如果 MySQL 服务器处于活动并运行状态,我们将得到结果:

检查 MySQL 版本

方法 1

我们可以在终端窗口中使用以下命令查看 MySQL 版本:

方法 2

我们可以使用命令 mysqld 配合选项 -V 来检查本地主机系统上活跃的 MySQL 版本。以下示例仅适用于 localhost:

方法 3

我们也可以通过在 MySQL shell 中输入以下语句来获取版本:

方法 4

我们还可以查看保存在名为 “version” 的变量中的 MySQL 版本信息。我们需要输入以下语句来查看 MySQL 的服务器版本。