Проверьте, установлен ли 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.