Is there a way to determine if mySql has been installed on a Linux server?
6 Answers
Assuming that you are looking for a mysql binary installed with a typical package, run the command:
mysql
or
mysql --version
If it comes back with a response, it is installed, if it says "command not found" then it is not installed.
How about rpm -q mysql
(Fedora/RedHat)
-
rpm -qa | grep mysql is probably safer since the main package is mysql-server– OphidianOct 1, 2009 at 3:36
Other than the good suggestions above, try:
locate mysqld_safe
or
ls /etc/init.d | grep mysql
If you think it might be running already try:
ps waxu | grep mysql
or
netstat -pan | grep mysql
On every distribution that I know of, MySQL installs some shared libraries for its client, named appropriately limbysqlclient. You can check for this by using the ldconfig tool, which will query to see if the object is installed:
ldconfig -p | grep mysqlclient
libmysqlclient_r.so.15 (libc6) => /usr/lib/libmysqlclient_r.so.15
libmysqlclient_r.so.14 (libc6) => /usr/lib/libmysqlclient_r.so.14
libmysqlclient_r.so.12 (libc6) => /usr/lib/libmysqlclient_r.so.12
libmysqlclient_r.so.10 (libc6) => /usr/lib/libmysqlclient_r.so.10
libmysqlclient_r.so (libc6) => /usr/lib/libmysqlclient_r.so
libmysqlclient.so.15 (libc6) => /usr/lib/libmysqlclient.so.15
libmysqlclient.so.14 (libc6) => /usr/lib/libmysqlclient.so.14
libmysqlclient.so.12 (libc6) => /usr/lib/libmysqlclient.so.12
libmysqlclient.so.10 (libc6) => /usr/lib/libmysqlclient.so.10
libmysqlclient.so (libc6) => /usr/lib/libmysqlclient.so
This tells you that there's a very good chance that MySQL is installed. Its very rare that someone would install the shared objects only, without installing at least the client. Now, check for the existence of the actual client and server:
root@tower:~ # which mysqld_safe
/usr/bin/mysqld_safe
root@tower:~ # which mysql
/usr/bin/mysql
root@tower:~ #
The `which' program may not be installed, so check for it via:
root@tower:~ # which which
/usr/bin/which
Hope this helps. Short of querying the package manager (kind of hard to do in a script if you have many systems running different distributions) it seems a very reliable way to tell.
The easiest and most distro-agnostic way of answering your question is;
find / -name mysql