当前位置:首页 > Linux > 正文

Linux如何查看数据库版本?

在Linux下,查看数据库版本通常通过命令行工具执行特定命令。 ,- **MySQL/MariaDB**:运行 mysql --version 或登录后执行 SELECT VERSION(); ,- **PostgreSQL**:使用 psql --version 或登录后执行 SELECT version(); ,- **Oracle**:登录SQL*Plus后执行 SELECT * FROM v$version; ,其他数据库类似,需使用对应客户端工具查询版本信息。

关系型数据库

MySQL / MariaDB

方法1:通过客户端命令

mysql --version
# 或
mysql -V

输出示例
mysql Ver 8.0.33-0ubuntu0.22.04.2 for Linux on x86_64 ((Ubuntu))

方法2:登录数据库查询

mysql -u root -p -e "SELECT VERSION();"
# 或登录后执行:
SHOW VARIABLES LIKE "%version%";

关键输出项

  • version:核心版本号
  • version_comment:发行版信息(如Ubuntu编译版)
  • version_compile_os:操作系统平台

方法3:查看安装包信息(适用于Debian/Ubuntu)

dpkg -l | grep mysql-server
# 或
apt show mysql-server

PostgreSQL

方法1:命令行工具

psql --version

方法2:数据库内查询

sudo -u postgres psql -c "SELECT version();"

输出示例
PostgreSQL 14.7 (Ubuntu 14.7-0ubuntu0.22.04.1) on x86_64-pc-linux-gnu

方法3:配置文件查看

Linux如何查看数据库版本?  第1张

cat /etc/postgresql/*/main/postgresql.conf | grep '^#?version'

Oracle Database

*方法1:SQLPlus查询**

SELECT * FROM v$version;

典型输出

Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production

方法2:查看安装目录

cat $ORACLE_HOME/inventory/ContentsXML/comps.xml | grep version

SQLite

方法1:终端命令

sqlite3 --version
# 输出示例:3.37.2 2022-01-06 13:25:41

方法2:交互式查询

sqlite3 :memory: "SELECT sqlite_version();"

NoSQL数据库

MongoDB

方法1:Shell命令

mongod --version

输出包含

  • db version v5.0.14
  • 构建环境(如modules: enterprise

方法2:Mongo Shell

db.version()

Redis

方法1:服务端命令

redis-server -v
# 或详细版本
redis-server --version | awk '{print $3}'

方法2:客户端查询

redis-cli info server | grep redis_version

Cassandra

方法1:终端命令

cassandra -v
# 输出:3.11.14

方法2:CQL Shell

SELECT release_version FROM system.local;

自动化脚本模板(一键获取版本)

#!/bin/bash
DB_TYPE=$1
case $DB_TYPE in
  mysql)
    mysql -V | awk '{print $5}' | cut -d',' -f1
    ;;
  postgres)
    psql --version | awk '{print $3}'
    ;;
  redis)
    redis-server --version | awk '{print $3}' | cut -d'=' -f2
    ;;
  *)
    echo "Usage: $0 {mysql|postgres|redis}"
    ;;
esac

使用示例./db_version.sh mysql


注意事项

  1. 权限问题

    • 需要sudo权限访问系统命令(如dpkg
    • 数据库查询需用户有SELECT权限
  2. 容器环境
    在Docker中执行命令需进入容器:

    docker exec -it mysql_container mysql -V
  3. 多实例场景
    PostgreSQL等多实例环境需指定端口:

    psql -p 5433 -c "SELECT version();"

为什么需要准确获取版本?

  1. 安全合规:确认是否受CVE破绽影响(如MySQL JDBC注入破绽CVE-2022-2141)
  2. 功能依赖:GIS空间函数等特性需特定版本支持
  3. 升级规划:评估版本兼容性(如MySQL 5.7 → 8.0的语法变更)

引用说明

  • MySQL官方文档:Version Specific Notes
  • PostgreSQL版本策略:Versioning Policy
  • Redis发布日志:Release Notes
    数据最后验证日期:2025年10月(适用于Ubuntu 22.04/CentOS 7+环境)
0