MySQL List Databases

Posted on in Categories , , , , , , last updated January 18, 2016

How do I display a list of all databases under MySQL database server running on a Linux or Unix-like system?

You need to use the show databases SQL command. First you need to login as MySQL database root user using mysql command line client. Type the following command to login with a password at a shell prompt:

$ mysql -u USERNAME -h HOSTNAME -p
$ mysql -u root -p

At mysql prompt type the following command (show databases;):
mysql> show databases;
Sample output:

| Database           |
| information_schema | 
| mysql              | 
| wiki               | 
3 rows in set (0.03 sec)

Of course your can use the following shell one liner to get the list of all databases too:

# Connect to the local server
mysql -u root -h localhost -p  -e 'show databases;'
# Connect to the remove mysql server
mysql -u root -h -p  -e 'show databases;'

Sample outputs:

Fig.01: mysql command in action
Fig.01: mysql command in action

For your shell script, you can just get a list of all of databases using the following syntax:

mysql -u root -h localhost -p'MyPasswordHere'  -e 'show databases;' | awk '{ print $1 }' 
# OR store it in $DBS shell variable 
DBS=$(mysql -u root -h localhost -p'MyPasswordHere'  -e 'show databases;' | awk '{ print $1 }')
echo "List of database - $DBS"

Posted by: Vivek Gite

The author is the creator of nixCraft and a seasoned sysadmin and a trainer for the Linux operating system/Unix shell scripting. He has worked with global clients and in various industries, including IT, education, defense and space research, and the nonprofit sector. Follow him on Twitter, Facebook, Google+.

5 comment

  1. Task: Develop a PHPMyAdmin Input: Hostname, Username, Password.
    Output: List all databases & table names which are associated with the given username & password.please guys,can anyone tell me how to do it?thanks in advance

Leave a Comment