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

10

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

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

Ответы:

12

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

mysql

или

mysql --version

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

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

Какая версия Linux?

Debian dpkg -l 'mysql *'

Ryaner
источник
1

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

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

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

locate mysqld_safe

или

ls /etc/init.d | grep mysql

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

ps waxu | grep mysql

или

netstat -pan | grep mysql
Twirrim
источник
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

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

Тим Пост
источник
-1

Самый простой и самый дистроагностичный способ ответить на ваш вопрос:

find / -name mysql
Майкл Побега
источник