Есть ли способ определить, установлен ли mySql на сервере Linux?
Предполагая, что вы ищете двоичный файл mysql, установленный с обычным пакетом, выполните команду:
mysql
или
mysql --version
Если он возвращается с ответом, он установлен, если он говорит «команда не найдена», значит, он не установлен.
Какая версия linux?
Debian dpkg -l 'mysql *'
Как насчет rpm -q mysql
(Fedora / RedHat)
Помимо хороших предложений выше, попробуйте:
locate mysqld_safe
или
ls /etc/init.d | grep mysql
Если вы думаете, что он уже работает, попробуйте:
ps waxu | grep mysql
или
netstat -pan | grep mysql
В каждом известном мне дистрибутиве MySQL устанавливает некоторые разделяемые библиотеки для своего клиента, названные соответственно limbysqlclient. Вы можете проверить это с помощью инструмента ldconfig, который запросит, установлен ли объект:
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
Это говорит о высокой вероятности того, что MySQL установлен. Очень редко кто-то устанавливает только общие объекты, не устанавливая хотя бы клиента. Теперь проверьте наличие реального клиента и сервера:
root@tower:~ # which mysqld_safe
/usr/bin/mysqld_safe
root@tower:~ # which mysql
/usr/bin/mysql
root@tower:~ #
Программа which может не быть установлена, поэтому проверьте ее через:
root@tower:~ # which which
/usr/bin/which
Надеюсь это поможет. Если не считать запроса к диспетчеру пакетов (что довольно сложно сделать в сценарии, если у вас много систем, работающих с разными дистрибутивами), это кажется очень надежным способом узнать.
Самый простой и независимый от дистрибутива способ ответить на ваш вопрос:
find / -name mysql