670

What command returns the current version of a MySQL database?

1
  • 37
    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. Commented Mar 6, 2019 at 16:44

23 Answers 23

920

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

Sign up to request clarification or add additional context in comments.

4 Comments

what if I don't want to run anything related to mysql itself? where is this version information stored?
@Sajuuk it isn't stored anywhere. but if you are using some kind of packaging system, that will store the version
This is instant solution. I got it on first click. It should be the accepted answer.
247

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 

2 Comments

mysqld --help is working for me
mysqld --version does not work on Windows 10's Command Prompt as of MySQL 8.0.41 when not connected to the local (same machine) database. The --help also does not work. 'mysqld' is not recognized as an internal or external command, operable program or batch file.
173

try

mysql --version 

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

9 Comments

This is the best quick option if you're lazy - you don't even need to log in :-D works fine on Centos / RHEL command line as well as Ubuntu.
@user568458, admittedly, though, it gives you the client's version or the version of local server provided that the one that is installed as a package is running ;)
The command mysql --version is not OS specific. This will work on any Linux distro, Windows and OS X.
@KolobCanyon, well, unless you don't have it in path :)
The command that works for the server version will presumably only work if the server is running from a Debian-installed package.
|
35

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

6 Comments

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.
Idea here is to provide relevant information, not quick answer. Anyway, updated answer based on your suggestion. Thanks!!
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.
Why a screenshot for what could have been easily copied as text?
It already has queries in the text format which is easy to copy.
|
29

Use mysql -V works fine for me on Ubuntu.

1 Comment

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.
23
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

Comments

20

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

1 Comment

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.
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.

Comments

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) 

Comments

14

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

mysql --version 

2 Comments

This is the same response that @MichaelKrelin answered!
This will give you the mysql client version, not the server.
13

MySQL Server version

shell> mysqld --version 

MySQL Client version

shell> mysql --version shell> mysql -V 

2 Comments

These give the version of the mysql client utility, which may be completely different from the version the database server is running.
I see you've updated your answer now to include both, and put the server version first. Thanks.
9

mysqladmin version OR mysqladmin -V

2 Comments

This will tell mysqladmin client version not to mysql server
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.
8

From the console you can try:

mysqladmin version -u USER -p PASSWD 

1 Comment

note that the command includes the password, which might be saved in the log-file for the shell (bash / cli / terminal emulator). To avoid this, enter the command with -p parameter but never add the password, you'll be prompted then to enter the password but it won't be saved in any log file.
8

For Mac,

  1. login to mysql server.

  2. execute the following command:

     SHOW VARIABLES LIKE "%version%"; 

2 Comments

This should work in a MySQL client on any platform. It's the same solution given in an earlier answer: stackoverflow.com/a/8987742/446106
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.
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 | +-----------+ 

1 Comment

note that the 2nd command includes the password, which might be saved in the log-file for the shell (bash / cli / terminal emulator). To avoid this, enter the command with -p parameter but never add the password, you'll be prompted then to enter the password but it won't be saved in any log file.
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> 

Comments

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) 

2 Comments

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.
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.
3

Xampp with Windows users below in the command which worked in the MySQL directory. enter image description here

Comments

0

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

2 Comments

quick ! no need to be connected to the database :) thanks
This is only for the MySQL client, which may be very different from the sever. Also, the Linux command would need to be lower case.
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 

Comments

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.

Comments

-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

Comments

-1

Only this code works for me

/usr/local/mysql/bin/mysql -V 

1 Comment

That returns the version number of the client, not of the server

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.