Wie entferne ich MySQL vollständig aus einer Linux-Installation?

8

Ich war überrascht, dass einer meiner privilegierten Benutzer MySQL auf einer Linux-Box installiert hat. Der Server (mysqld) läuft und tut nichts. Meine Fähigkeiten sind alle in Oracle, daher bin ich nicht mit dem Herunterfahren und Entfernen der MySQL-Installation vertraut.

Dacracot
quelle

Antworten:

21

Sie haben nicht erwähnt, welche Distribution Sie verwenden, aber wenn sie über yum auf einer RedHat-basierten Distribution installiert wurden, können Sie sie entfernen mit:

yum remove mysql-server

Wenn sie es in ihrem eigenen Benutzerbereich installieren, entfernen Sie einfach die Binärdateien, auf denen der Server ausgeführt wird. Wenn es unter Debian / Ubuntu läuft, würden Sie die genannten Methodenfunken verwenden. Ich würde auch alternativ verwenden:

killall mysqld; killall mysqld_safe
Dave Drager
quelle
4
Es ist eine gute Idee, sich daran zu gewöhnen, pkill anstelle von killall zu verwenden. Sie könnten eines Tages auf einer Solaris-Box
landen
4
Ich bevorzuge /sbin/service mysql stop. Dann können chkconfig mysql offSie den Neustart deaktivieren. Dann wird die ausfallsichere Art und Weise von RPM basierend distros (root) zu entfernen rpm -qa | grep mysql, dann rpm -e mysql-<package_name>.
Churnd
pkill mysqld; pkill mysqld_safehat wunderbar funktioniert. Der Versuch killall mysqld; killall mysqld_safewar nicht erfolgreich. Auf Fedora 18 hatte ich Erfolg mit pkill, danke MikeyB.
Ryan Michael
Ich musste auch verwenden: yum remove mysql , als den Befehl, den mysql immer noch den installierten Pfad von mysql anzeigt.
Shasi Kanth
6

Es hängt alles davon ab, wie der ursprüngliche Benutzer das Paket installiert hat. Wenn sie das integrierte Paketmanagement des Betriebssystems verwendet haben, sollte es so einfach sein wie die yum-Zeile in Daves Antwort oder auf einem Debian-basierten System (einschließlich Ubuntu). Sie können Folgendes verwenden:

apt-get remove mysql-server

(Verwenden Sie nebenbei "Löschen" anstelle von "Entfernen", wenn Sie auch benutzerdefinierte Konfigurationsdateien entfernen möchten.)

Wenn Sie den genauen Paketnamen nicht kennen, der unter Ubuntu entfernt werden soll:

dpkg -l|grep mysql

Wenn der betreffende Benutzer kein Paketverwaltungstool verwendet hat, besteht die einzige echte Lösung darin, einfach sicherzustellen, dass der Server beim Start nicht geladen wird (chkconfig oder update-rc.d sind zwei nützliche Tools dafür - überprüfen Sie ihren Mann Seiten) und entfernen Sie manuell alle installierten Dateien.


quelle
Hoppla, entschuldigen Sie die redundante Ubuntu-Antwort - lassen Sie sie für den Vorschlag chkconfig und update-rc.d ...)
Stellen Sie sicher, dass Sie die GUI-Tools / Workbench auch für den Fall entfernen, dass sie installiert sind: sudo apt-get remove mysql-workbench
pm_labs
2

Wenn der Benutzer zufällig Datenbanken eingerichtet hat, müssen Sie diese möglicherweise ebenfalls entfernen. In der Paketbasisinstallation von MySQL finden Sie die Tabellendateien in /var/lib/mysql. Wenn sie sich an einer anderen Stelle befinden, können Sie einfach nach den Tabellendateien suchen. Sie haben eine .frmErweiterung und sollten in einem Verzeichnis enthalten sein, das nach der Datenbank benannt ist, der sie zugeordnet sind.

rvf
quelle
1

Abhängig von Ihrer Distribution sollten Sie die Option haben, sie mit einem Init-Skript in "/etc/init.d/mysql stop" herunterzufahren. Wenn dies fehlschlägt, können Sie die Prozesse mit etwas ähnlichem wie "for i in ps -ef |grep mysqld |awk '{print $2}'; do kill -9 $i; done" beenden.

Es hängt wirklich davon ab, wie sie es installiert haben und wie Sie es entfernt haben. Wenn Sie eine Debian-basierte Distribution ausführen: "sudo apt-get remove mysqld"

Per Zoredaches Kommentar können Sie auch Folgendes tun: "sudo apt-get purge mysqld", wodurch auch Konfigurationsdateien entfernt werden.

Sclarson
quelle
1
Vielleicht möchten Sie 'apt-get purge' anstatt entfernen, wenn Sie alles komplett loswerden möchten. Der Paketname wird wahrscheinlich 'mysql-server' und 'mysql-common' sein und nicht mysqld.
Zoredache
0

Vielleicht weiß der Benutzer selbst nicht, dass er MySQL installiert hat. Es kann passieren, wenn MySQL eine Abhängigkeit von einem anderen Programm ist. Schauen Sie sich die Protokolldatei des Paketmanagers an, z. B.: Für eine Redhat-Überprüfung /var/log/yum.log. Sie werden wahrscheinlich mehrere weitere Pakete gleichzeitig installiert finden. Sie können dann ableiten, was der Benutzer tun wollte, und vielleicht möchten Sie auch einige andere Pakete entfernen, von denen Sie die Installation nicht kannten!

Auf einem aktuellen Redhat können Sie beispielsweise "yum history list" ausführen. Nachdem Sie das Installationsdatum in /var/log/yum.log gefunden haben, können Sie ableiten, welcher yum-Vorgang mit der MySQL-Installation zusammenhängt, und Sie können für Beispiel "yum history info operation_number", um Details zur Installation abzurufen, oder "yum history rückgängig machen operation_number", um den Vorgang zurückzusetzen und die zugehörigen Pakete zu deinstallieren.

Rosco
quelle
0

Vielleicht weiß der Benutzer selbst nicht, dass er MySQL installiert hat. Es kann passieren, wenn MySQL eine Abhängigkeit von einem anderen Programm ist. Schauen Sie sich die Protokolldatei des Paketmanagers an, z. B.: Für eine Redhat-Prüfung /var/log/yum.log. Sie werden wahrscheinlich mehrere weitere Pakete gleichzeitig installiert finden. Sie können dann ableiten, was der Benutzer tun wollte, und vielleicht möchten Sie auch einige andere Pakete entfernen, von denen Sie die Installation nicht kannten!

md wajaheth
quelle