18.

MySQL バージョン確認方法完全ガイド

編集
この記事の要点
  • クライアント側: mysql --version (mysql クライアントのバージョン)
  • サーバ側: SQL で SELECT VERSION(); または SHOW VARIABLES LIKE "version%"
  • クライアントとサーバは別物: mysql --version は接続クライアント、本当に知りたいのは接続先サーバのバージョン
  • Docker / K8s: docker exec mysql mysql --version でコンテナ内バージョン
  • RDS / Aurora: AWS コンソールの「DB エンジンバージョン」、または SELECT aurora_version();

クライアント側のバージョン確認

OS にインストールされている mysql / mysqldump 等のクライアントのバージョンを見るだけです。接続先のサーバとは別物なので注意。

# Linux / Mac / Windows 共通
mysql --version
# → mysql  Ver 8.0.35 for Linux on x86_64 (MySQL Community Server - GPL)

mysql -V

# mysqldump 等もそれぞれ
mysqldump --version
mysqladmin --version

# rpm / dpkg で
rpm -qa | grep mysql
dpkg -l | grep mysql

# Homebrew (Mac)
brew list --versions mysql
brew info mysql

サーバ側のバージョン確認 (本命)

実運用で本当に欲しいのは接続先サーバのバージョンです。SQL で確認します。

-- 接続中のサーバのバージョン
SELECT VERSION();
-- → 8.0.35

-- システム変数経由
SHOW VARIABLES LIKE 'version';
SHOW VARIABLES LIKE 'version%';
-- +-------------------------+--------------------------+
-- | Variable_name           | Value                    |
-- +-------------------------+--------------------------+
-- | version                 | 8.0.35                   |
-- | version_comment         | MySQL Community Server   |
-- | version_compile_machine | x86_64                   |
-- | version_compile_os      | Linux                    |
-- | version_compile_zlib    | 1.2.13                   |
-- +-------------------------+--------------------------+

-- @@ 構文 (グローバル変数)
SELECT @@version;
SELECT @@version_comment;
SELECT @@hostname, @@version, @@datadir;

-- ステータス情報全部
STATUS;     -- mysql コンソール上のみ
\s          -- 同上 (短縮)
-- Server version:        8.0.35 MySQL Community Server - GPL
-- Protocol version:      10
-- Connection:            127.0.0.1 via TCP/IP

シェルから直接 SQL を実行して確認

# -e オプションで SQL を渡す (パスワードはプロンプト)
mysql -h db.example.com -u root -p -e "SELECT VERSION();"

# パスワードを引数に (履歴に残るので非推奨)
mysql -h localhost -u root -ppassword -e "SELECT VERSION();"

# ~/.my.cnf に書いておけば -p 不要
cat ~/.my.cnf <<EOF
[client]
user=root
password=secret
host=db.example.com
EOF
chmod 600 ~/.my.cnf

mysql -e "SELECT VERSION();"

# 接続せずクライアントバージョンだけ
mysql --print-defaults

各環境での確認方法

環境確認方法
素のローカル / VMmysql -u root -p -e "SELECT VERSION();"
Docker コンテナdocker exec mysql_container mysql --version
docker-composedocker-compose exec mysql mysql --version
Kubernetes Podkubectl exec -it mysql-0 -- mysql --version
AWS RDSコンソール → RDS → DB エンジンバージョン
AWS AuroraSELECT AURORA_VERSION(); (Aurora MySQL のみ)
GCP Cloud SQLコンソール → インスタンスの詳細 → データベースバージョン
Azure Database for MySQLAzure Portal → 概要 → サーバーバージョン
phpMyAdminホーム画面右上 → 「データベースサーバー: 8.0.35」
MySQL WorkbenchServer → Server Status

Docker で詳細確認

# イメージのタグから (起動時に指定したバージョン)
docker ps --format "table {{.Names}}\t{{.Image}}"
# mysql_container   mysql:8.0.35

# 動いているプロセスのバージョン
docker exec -it mysql_container mysql -u root -p -e "SELECT VERSION();"

# Compose の image スタックを全部
docker-compose images

# 全タグ一覧 (Docker Hub)
curl -s https://hub.docker.com/v2/repositories/library/mysql/tags/ | jq '.results[].name'

AWS RDS / Aurora

# AWS CLI で
aws rds describe-db-instances \
  --db-instance-identifier mydb \
  --query 'DBInstances[0].EngineVersion'
# "8.0.35"

# Aurora は別途バージョンあり (Aurora MySQL 3.x = MySQL 8.0 互換)
mysql -h aurora-cluster.example.com -u admin -p -e "SELECT AURORA_VERSION();"
# 3.04.1

# 同時に MySQL バージョンも
mysql -e "SELECT VERSION(), AURORA_VERSION();"

MariaDB との見分け方

MariaDB は MySQL からフォークしたため、mysql コマンドで接続できますが別物です:

SELECT VERSION();
-- MariaDB: 10.11.5-MariaDB
-- MySQL:   8.0.35

SHOW VARIABLES LIKE '%version%';
-- MariaDB は version_comment が 'MariaDB Server' になる

-- 確実な判別 (情報スキーマ)
SELECT @@version_comment, @@version;
-- MariaDB Server | 10.11.5-MariaDB

-- MariaDB 特有の関数で判別
SELECT @@version LIKE '%MariaDB%' AS is_mariadb;

複数 MySQL の同居 (Mac Homebrew)

開発環境で MySQL 5.7 と 8.0 を両方使いたい場合などのチェック:

# Homebrew でインストール済バージョン
brew list --versions | grep mysql
# mysql 8.0.35
# mysql@5.7 5.7.43

# 接続先別にバージョン
mysql -P 3306 -u root -p -e "SELECT VERSION();"   # 8.0
mysql -P 3307 -u root -p -e "SELECT VERSION();"   # 5.7

# どちらの mysql バイナリが PATH か
which -a mysql
ls -la /usr/local/opt/mysql/bin/mysql
ls -la /usr/local/opt/mysql@5.7/bin/mysql

サポート状況の確認

バージョン状態サポート終了
MySQL 5.6EOL2021-02
MySQL 5.7EOL2023-10
MySQL 8.0LTS2026-04 (延長サポート)
MySQL 8.4LTS2032-04
MariaDB 10.5EOL2025-06
MariaDB 10.11LTS2028-02
MariaDB 11.4LTS2029-05

FAQ

Q: mysql --versionSELECT VERSION() が違う値を返す
A: 正常です。前者はローカルのクライアントツール、後者は接続中のサーバ。本番調査では必ず SELECT VERSION() を使ってください。

Q: アプリから取りたい
A: 接続後に SELECT VERSION() を発行するだけ。PHP なら $pdo->getAttribute(PDO::ATTR_SERVER_VERSION) でも可。

Q: MySQL 5.7 のまま運用していて大丈夫?
A: 既に EOL なのでセキュリティリスク。8.0 への移行を強く推奨。Aurora 等の互換レイヤを使うのも一手。

編集
Post Share
子ページ

子ページはありません

同階層のページ
  1. ダウンロード&インストール方法(Windows)
  2. インストール方法(Linux)
  3. コマンド一覧
  4. SQL
  5. データ型
  6. 関数
  7. 管理ツール
  8. 設定
  9. パフォーマンスチューニング関連
  10. エクスポートおよびインポート
  11. エラー&トラブル
  12. 文字コードの確認
  13. 実行中の SQL の状態確認およびプロセスキルの方法
  14. パスワードの無効化設定
  15. root ユーザーの初期パスワード確認方法
  16. rootユーザーのパスワード変更方法
  17. LIMIT, OFFSET の始まりと挙動
  18. mysqlのバージョン確認方法
  19. MySQLで実行計画を表示する方法
  20. レプリケーションのステータス確認方法
  21. 中央値の導き方(バージョン8未満)
  22. 階層SQL(バージョン8未満)
  23. パーセンタイルの導き方
  24. 特定スキーマの全テーブルの全カラム情報を取得する方法

最近更新/作成されたページ