HowTo: Find out If MySQL Is Running On Linux Or Not

by on February 6, 2006 · 4 comments· LAST UPDATED January 31, 2011

in , ,

How do I find out if my MySQL server is running or not under Linux / UNIX operating systems?

You can use mysql startup script or mysqladmin command to find out if it is running on Linux. Then you can use ps command and telnet command too (it is not reliable but it works.). mysqladmin is a utility for performing administrative operations. You can also use shell script to monitor MySQL server. You can use mysqladmin as follows:

# mysqladmin -u root -p status
Output:

Enter password:
Uptime: 4  Threads: 1  Questions: 62  Slow queries: 0  Opens: 51  Flush tables: 1  Open tables: 45  Queries per second avg: 15.500

If MySQL serer is running it will display output as above. It displays uptime and number of queries etc. If server is not running then it will dump error as follows
# mysqladmin -u root -p status
Output:

mysqladmin: connect to server at 'localhost' failed
error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)'
Check that mysqld is running and that the socket: '/var/run/mysqld/mysqld.sock' exists!

Under Debian Linux you can type following command to find out if MySQL server is running or not
# /etc/init.d/mysql statusOutput:

/usr/bin/mysqladmin  Ver 8.41 Distrib 4.1.15, for pc-linux-gnu on i486
Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL license
Server version          4.1.15-Debian_1-log
Protocol version        10
Connection              Localhost via UNIX socket
UNIX socket             /var/run/mysqld/mysqld.sock
Uptime:                 4 min 16 sec
Threads: 1  Questions: 66  Slow queries: 0  Opens: 51  Flush tables: 1  Open tables: 45  Queries per second avg: 0.258

If you are using RedHat of Fedora then you can use following script"
# service mysqld statusOR# /etc/init.d/mysqld statusSee also:

TwitterFacebookGoogle+PDF versionFound an error/typo on this page? Help us!

{ 4 comments… read them below or add one }

1 Yashpal January 15, 2007 at 11:32 am

Also we can use

mysqladmin -umysql ping

It says “mysqld is alive” if mysql is running o/w
prints some messages.

If it doesn’t work then try:

mysqladmin -uDB_USERNAME -pDB_USERPASSWORD ping

Where you have to replace DB_USERNAME and DB_USERPASSWORD with actual values.

Thanks & Regards,
Yashpal

Reply

2 Tony January 16, 2013 at 2:47 pm

mysqladmin ping > /dev/null 2>&1 && echo RUNNING || echo DOWN

mysqladmin ping > /dev/null 2>&1 && up=1 || up=0

etc.

Why preffered?
man mysqladmin
ping
Check whether the server is available. The return status from mysqladmin
is 0 if the server is running, 1 if it is not. *****This is 0 even in case of
an error such as Access denied, because this means that the server is
running but refused the connection, which is different from the server
not running.*****

Reply

3 anurag February 14, 2013 at 6:01 am

start the
service mysqld start

Reply

4 Larry April 2, 2014 at 7:25 pm
TMP=`mysqladmin -u root -p[password] status 2>&1 | head -n 1 | cut -f1 -d:`
case ${TMP} in
Uptime) echo "MySQL is running.";;
*) echo "MySQL is not running.";;
esac

Reply

Leave a Comment

Tagged as: , , , , , , , , ,

Previous Faq:

Next Faq: