Проверьте, установлен ли mySql на сервере


10

Есть ли способ определить, был ли mySql установлен на сервере Linux?


Если вам нужно понизить этот вопрос, скажите, пожалуйста, почему?
Элитмиар

Возможно, потому что вы не задали свой вопрос хорошо. Вот фактический способ сделать это правильно: catb.org/~esr/faqs/smart-questions.html
pboin

Ответы:


12

Предполагая, что вы ищете двоичный файл mysql, установленный с типичным пакетом, выполните команду:

mysql

или

mysql --version

Если он возвращается с ответом, он устанавливается, если он говорит «команда не найдена», то он не устанавливается.


Предполагая, что он находится в пути или текущем каталоге.
squillman

Также предполагается, что он не был скомпилирован для использования другого имени! :)
Дэйв Драгер


1

Как насчет rpm -q mysql(Fedora / RedHat)


об / мин -qa | grep mysql, вероятно, безопаснее, поскольку основным пакетом является mysql-server
Ophidian

1

Кроме хороших предложений выше, попробуйте:

locate mysqld_safe

или

ls /etc/init.d | grep mysql

Если вы думаете, что он уже запущен, попробуйте:

ps waxu | grep mysql

или

netstat -pan | grep mysql

0

В каждом известном мне дистрибутиве 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

Надеюсь это поможет. Если не считать запросов к менеджеру пакетов (что сложно сделать в скрипте, если у вас много систем, работающих под разными дистрибутивами), это кажется очень надежным способом определения.


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.