Есть ли способ определить, был ли mySql установлен на сервере Linux?
Есть ли способ определить, был ли mySql установлен на сервере Linux?
Ответы:
Предполагая, что вы ищете двоичный файл mysql, установленный с типичным пакетом, выполните команду:
mysql
или
mysql --version
Если он возвращается с ответом, он устанавливается, если он говорит «команда не найдена», то он не устанавливается.
Как насчет rpm -q mysql
(Fedora / RedHat)
В каждом известном мне дистрибутиве 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