MySQL List Databases

last updated in Categories , , , , , ,

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, DevOps engineer, and a trainer for the Linux operating system/Unix shell scripting. Get the latest tutorials on SysAdmin, Linux/Unix and open source topics via RSS/XML feed or weekly email newsletter.


5 comment

  1. for me some of the databases are not listing wven though complete privilleges are given and i checked same on mysql.db table also .Please help me out

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