上一篇
Linux如何查看数据库版本?
- Linux
- 2025-06-03
- 2166
在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:配置文件查看
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
注意事项
-
权限问题
- 需要
sudo
权限访问系统命令(如dpkg
) - 数据库查询需用户有
SELECT
权限
- 需要
-
容器环境
在Docker中执行命令需进入容器:docker exec -it mysql_container mysql -V
-
多实例场景
PostgreSQL等多实例环境需指定端口:psql -p 5433 -c "SELECT version();"
为什么需要准确获取版本?
- 安全合规:确认是否受CVE破绽影响(如MySQL JDBC注入破绽CVE-2022-2141)
- 功能依赖:GIS空间函数等特性需特定版本支持
- 升级规划:评估版本兼容性(如MySQL 5.7 → 8.0的语法变更)
引用说明:
- MySQL官方文档:Version Specific Notes
- PostgreSQL版本策略:Versioning Policy
- Redis发布日志:Release Notes
数据最后验证日期:2025年10月(适用于Ubuntu 22.04/CentOS 7+环境)