594

What command returns the current version of a MySQL database?

Yevgeniy Afanasyev
  • 37,872
  • 26
  • 173
  • 191
pheromix
  • 18,213
  • 29
  • 88
  • 158
  • 28
    A surprising number of answers below suggest some variant of `mysql --version`. This gives the version of the **client** utility, not the server, so it's a bit like trying to find out your version of Apache by loading Firefox and opening the Help->About dialog. – mwfearnley Mar 06 '19 at 16:44

23 Answers23

806

Try this function -

SELECT VERSION();
-> '5.7.22-standard'

VERSION()

Or for more details use :

SHOW VARIABLES LIKE "%version%";
+-------------------------+------------------------------------------+
| Variable_name           | Value                                    |
+-------------------------+------------------------------------------+
| protocol_version        | 10                                       |
| version                 | 5.0.27-standard                          |
| version_comment         | MySQL Community Edition - Standard (GPL) |
| version_compile_machine | i686                                     |
| version_compile_os      | pc-linux-gnu                             |
+-------------------------+------------------------------------------+
5 rows in set (0.04 sec)

MySQL 5.0 Reference Manual (pdf) - Determining Your Current MySQL Version - page 42

Nolwennig
  • 1,613
  • 24
  • 29
Devart
  • 119,203
  • 23
  • 166
  • 186
236

Many answers suggest to use mysql --version. But the mysql programm is the client. The server is mysqld. So the command should be

mysqld --version

or

mysqld --help

That works for me on Debian and Windows.

When connected to a MySQL server with a client you can use

select version()

or

select @@version
Paul Spiegel
  • 30,925
  • 5
  • 44
  • 53
173

try

mysql --version

for instance. Or dpkg -l 'mysql-server*'.

Michael Krelin - hacker
  • 138,757
  • 24
  • 193
  • 173
30

Use mysql -V works fine for me on Ubuntu.

Nolwennig
  • 1,613
  • 24
  • 29
Umesh Kaushik
  • 1,551
  • 1
  • 16
  • 18
  • 5
    This gives the version of the `mysql` client utility. This *might* be a similar version if it's installed on the same system as the server, but if they're on different systems, it could be completely different. – mwfearnley Mar 05 '19 at 09:47
27

Mysql Client version : Please beware this doesn't returns server version, this gives mysql client utility version

mysql -version 

Mysql server version : There are many ways to find

  1. SELECT version();

enter image description here

  1. SHOW VARIABLES LIKE "%version%";

enter image description here

  1. mysqld --version
Amitesh Bharti
  • 14,264
  • 6
  • 62
  • 62
  • The `mysql` command needs to be lower case for most non-Windows platforms. But also, it would be better not to open your answer with the MySQL *client* version, because it's not what's asked for, and could mislead people. – mwfearnley Jun 26 '19 at 07:59
  • Idea here is to provide relevant information, not quick answer. Anyway, updated answer based on your suggestion. Thanks!! – Amitesh Bharti Jun 26 '19 at 10:23
  • Hi, thanks for listening to my feedback. I would still remove the client info, because it’s not relevant (although it is tangentially related). And at the least I’d recommend opening with the “server version” info. Your warning is helpful though. – mwfearnley Jun 27 '19 at 21:44
  • Why a screenshot for what could have been easily copied as text? – AmigoJack Dec 26 '22 at 21:32
  • It already has queries in the text format which is easy to copy. – Amitesh Bharti Dec 27 '22 at 14:43
  • In contrast to screenshots (speak: pictures) text cannot vanish over time. Being able to copy output text is an advantage for everybody who cannot reproduce it with the same query/command for many reasons. And you could have indented the output (screenshots) as per your numbered list. And point out what's SQL and what's shell. – AmigoJack Dec 28 '22 at 21:54
22
SHOW VARIABLES LIKE "%version%";
+-------------------------+------------------------------------------+
| Variable_name           | Value                                    |
+-------------------------+------------------------------------------+
| protocol_version        | 10                                       |
| version                 | 5.0.27-standard                          |
| version_comment         | MySQL Community Edition - Standard (GPL) |
| version_compile_machine | i686                                     |
| version_compile_os      | pc-linux-gnu                             |
+-------------------------+------------------------------------------+
5 rows in set (0.04 sec)

MySQL 5.0 Reference Manual (pdf) - Determining Your Current MySQL Version - page 42

Nolwennig
  • 1,613
  • 24
  • 29
John Woo
  • 258,903
  • 69
  • 498
  • 492
19

Go to MySQL workbench and log to the server. There is a field called Server Status under MANAGEMENT. Click on Server Status and find out the version. enter image description here

Or else go to following location and open cmd -> C:\Windows\System32\cmd.exe. Then hit the command -> mysql -V

enter image description here

Sandun Susantha
  • 1,010
  • 1
  • 10
  • 11
  • 1
    Note that you get to the 'Management' window by clicking on 'Administration' (rather than 'Schemas') in the tabs at the bottom of the 'Navigator' window on the left. – Barry DeCicco Mar 16 '21 at 17:47
17

I found a easy way to get that.

Example: Unix command(this way you don't need 2 commands.),

$ mysql -u root -p -e 'SHOW VARIABLES LIKE "%version%";'

Sample outputs:

+-------------------------+-------------------------+
| Variable_name           | Value                   |
+-------------------------+-------------------------+
| innodb_version          | 5.5.49                  |
| protocol_version        | 10                      |
| slave_type_conversions  |                         |
| version                 | 5.5.49-0ubuntu0.14.04.1 |
| version_comment         | (Ubuntu)                |
| version_compile_machine | x86_64                  |
| version_compile_os      | debian-linux-gnu        |
+-------------------------+-------------------------+

In above case mysql version is 5.5.49.

Please find this useful reference.

tk_
  • 16,415
  • 8
  • 80
  • 90
17

Simply login to the Mysql with

mysql -u root -p

Then type in this command

select @@version;

This will give the result as,

+-------------------------+
| @@version               |
+-------------------------+
| 5.7.16-0ubuntu0.16.04.1 |
+-------------------------+
1 row in set (0.00 sec)
Nirojan Selvanathan
  • 10,066
  • 5
  • 61
  • 82
14

For UBUNTU you can try the following command to check mysql version :

mysql --version
Denim Datta
  • 3,740
  • 3
  • 27
  • 53
12

MySQL Server version

shell> mysqld --version

MySQL Client version

shell> mysql --version

shell> mysql -V 

Nanhe Kumar
  • 15,498
  • 5
  • 79
  • 71
  • 5
    These give the version of the `mysql` client utility, which may be completely different from the version the database server is running. – mwfearnley Mar 05 '19 at 09:48
  • I see you've updated your answer now to include both, and put the server version first. Thanks. – mwfearnley Mar 03 '20 at 17:13
9

mysqladmin version OR mysqladmin -V

ptierno
  • 9,534
  • 2
  • 23
  • 35
Singh Anuj
  • 99
  • 1
  • 1
  • 2
    This will tell mysqladmin client version not to mysql server – Amitesh Bharti Aug 31 '18 at 09:36
  • 1
    `mysqladmin version` (with appropriate connection details) will give the actual server version, but `mysqladmin -V` gives the version of the `mysqladmin` command-line utility, which is probably not what you want. – mwfearnley Mar 05 '19 at 09:51
8

For Mac,

  1. login to mysql server.

  2. execute the following command:

     SHOW VARIABLES LIKE "%version%";
    
KayV
  • 12,987
  • 11
  • 98
  • 148
  • 2
    This should work in a MySQL client on any platform. It's the same solution given in an earlier answer: https://stackoverflow.com/a/8987742/446106 – mwfearnley Jun 18 '19 at 11:59
  • This worked for me from Datagrip, and as mentioned earlier, should work from any mysql client, because it is a db query, it is not os dependant so far I understand. – Codigo Morsa Feb 04 '22 at 10:16
8

From the console you can try:

mysqladmin version -u USER -p PASSWD
GDP
  • 8,109
  • 6
  • 45
  • 82
spike
  • 89
  • 4
6

With CLI in one line :

mysql --user=root --password=pass --host=localhost db_name --execute='select version()';

or

mysql -uroot -ppass -hlocalhost db_name -e 'select version()';

return something like this :

+-----------+
| version() |
+-----------+
| 5.6.34    |
+-----------+
Nolwennig
  • 1,613
  • 24
  • 29
4

You can also look at the top of the MySQL shell when you first log in. It actually shows the version right there.

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 67971
Server version: 5.1.73 Source distribution

Copyright (c) 2000, 2013, 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>
David Duggins
  • 331
  • 2
  • 4
4
E:\>mysql -u root -p
Enter password: *******
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1026
Server version: 5.6.34-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> select @@version;
+------------+
| @@version  |
+------------+
| 5.6.34-log |
+------------+
1 row in set (0.00 sec)
Marco Bonelli
  • 63,369
  • 21
  • 118
  • 128
  • Could you please provide some context to your answer. Though its clear this shows a solution, some explanation as to your approach and why its a good method would be helpful. Generally just posting code chunks is frowned on in SO. – Single Entity Apr 19 '17 at 10:34
  • 4
    I don't think any explanation is needed for why `SELECT @@version;`, which shows the version, would be a good method for showing the version. The bigger issue IMO is that this answer is a duplicate of earlier answers. – Matthew Read Sep 25 '17 at 16:04
3

Xampp with Windows users below in the command whihc worked in the mysql directory. enter image description here

Amol Bhandari SJ
  • 278
  • 2
  • 15
0

In windows ,open Command Prompt and type MySQL -V or MySQL --version. If you use Linux get terminal and type MySQL -v

Chaminda Bandara
  • 2,067
  • 2
  • 28
  • 31
Manjitha Teshara
  • 562
  • 2
  • 8
  • 21
0

Sometimes it is important to know which version of MySQL candidate is available to installed by default. here is the little command to check that prior to actually installing.

sudo apt-cache policy mysql-server

This is more important for any existing project which might be running on old MySQL Versions e.g. 5.7.

A sample output of the above command could be:

mysql-server: Installed: (none) Candidate: 8.0.29-0ubuntu0.20.04.3 Version table: 8.0.29-0ubuntu0.20.04.3 500

500 http://mirrors.digitalocean.com/ubuntu focal-updates/main amd64 Packages 500 http://security.ubuntu.com/ubuntu focal-security/main amd64 Packages 8.0.19-0ubuntu5 500

500 http://mirrors.digitalocean.com/ubuntu focal/main amd64 Packages

This states that by default by running the following command some flavour of MySQL Server 8 will be installed.

sudo apt install mysql-server
Dibyendu Mitra Roy
  • 1,604
  • 22
  • 20
0

Print a Dockerized MariaDB/MySQL Server version:

When I backup a WordPress site- in this case containerized- I capture the WordPress version in the filename as well as the DB version that was current at the time of the backup. This ensures that if I ever needed to restore, I wouldn't have a compatibility nightmare figuring out what version DB works with a specified version of the WordPress backup.

So I include the DB server version in the dump name. I loaded the below into a self-populating variable:

docker exec -it ContainerIdOfDB mysqld --version | awk '{print $3}' | cut -d'-' -f1

This pukes out the current DB version without having to login to retrieve it.

F1Linux
  • 3,580
  • 3
  • 25
  • 24
-1

Here two more methods:

Linux: Mysql view version: from PHP

From a PHP function, we can see the version used:

mysql_get_server_info ([resource $ link_identifier = NULL]): string

Linux: Mysql view version: Package version

For RedHat / CentOS operating systems:

rpm -qa | grep mysql

For Debian / Ubuntu operating systems:

rpm -qa | grep mysql

Extracted from: https://www.sysadmit.com/2019/03/linux-mysql-ver-version.html

-1

Only this code works for me

/usr/local/mysql/bin/mysql -V  
Kuhan
  • 495
  • 7
  • 17