Überprüfen Sie, ob mySql auf dem Server installiert ist

10

Gibt es eine Möglichkeit festzustellen, ob mySql auf einem Linux-Server installiert wurde?

Elitmiar
quelle
Wenn Sie diese Frage ablehnen müssen, sagen Sie mir bitte warum?
Elitmiar
Wahrscheinlich, weil Sie Ihre Frage nicht gut gestellt haben. Hier ist der De-facto-Weg, um es richtig zu machen: catb.org/~esr/faqs/smart-questions.html
pboin

Antworten:

12

Angenommen, Sie suchen nach einer MySQL-Binärdatei, die mit einem typischen Paket installiert ist, führen Sie den folgenden Befehl aus:

mysql

oder

mysql --version

Wenn es mit einer Antwort zurückkommt, wird es installiert. Wenn "Befehl nicht gefunden" angezeigt wird, wird es nicht installiert.

Dave Drager
quelle
Angenommen, es befindet sich im Pfad oder im aktuellen Verzeichnis.
Squillman
Angenommen, es wurde nicht kompiliert, um einen anderen Namen zu verwenden! :)
Dave Drager
2

Welche Version von Linux?

Debian dpkg -l 'mysql *'

Ryaner
quelle
1

Wie wäre es mit rpm -q mysql(Fedora / RedHat)

Satanicpuppy
quelle
U / min -qa | grep mysql ist wahrscheinlich sicherer, da das Hauptpaket mysql-server ist
Ophidian
1

Versuchen Sie, abgesehen von den oben genannten guten Vorschlägen:

locate mysqld_safe

oder

ls /etc/init.d | grep mysql

Wenn Sie glauben, dass es bereits läuft, versuchen Sie Folgendes:

ps waxu | grep mysql

oder

netstat -pan | grep mysql
Twirrim
quelle
0

Auf jeder mir bekannten Distribution installiert MySQL einige gemeinsam genutzte Bibliotheken für seinen Client mit dem entsprechenden Namen limbysqlclient. Sie können dies mit dem Tool ldconfig überprüfen, das abfragt, ob das Objekt installiert ist:

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

Dies zeigt Ihnen, dass es eine sehr gute Chance gibt, dass MySQL installiert ist. Es ist sehr selten, dass jemand nur die freigegebenen Objekte installiert, ohne mindestens den Client zu installieren. Überprüfen Sie nun die Existenz des tatsächlichen Clients und Servers:

root@tower:~ # which mysqld_safe
/usr/bin/mysqld_safe
root@tower:~ # which mysql
/usr/bin/mysql
root@tower:~ #

Das `which'-Programm ist möglicherweise nicht installiert. Überprüfen Sie es daher über:

root@tower:~ # which which
/usr/bin/which

Hoffe das hilft. Ohne den Paketmanager abzufragen (was in einem Skript schwierig ist, wenn auf vielen Systemen unterschiedliche Distributionen ausgeführt werden), scheint dies eine sehr zuverlässige Methode zu sein.

Tim Post
quelle
-1

Die einfachste und distro-agnostischste Art, Ihre Frage zu beantworten, ist:

find / -name mysql
Michael Pobega
quelle