Wie man MySQL mit bewegten PID tötet

3881
icicleking

Ich habe mehrere MySQL-Instanzen unter OSX 10.10. /usr/local/mysql/bin/mysqld stopIch spucke eine Reihe von Warnungen und Fehlern aus. Ich bin mir nicht sicher, ob sie es wert sind geteilt zu werden. Der erste Fehler beim 16164 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.Ausführen von mysql_upgrade schlägt fehl.

Laufende ps aux | grep mysqlErgebnisse in:

clayton 16179 0.0 0.0 2423356 228 s000 R+ 10:58AM 0:00.00 grep --color=auto --exclude-dir=.bzr --exclude-dir=CVS --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn mysql _mysql 15599 0.0 0.3 3070756 24508 ?? S 10:22AM 0:01.64 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/usr/local/mysql/data/Beast.local.err --pid-file=/usr/local/mysql/data/Beast.local.pid root 15514 0.0 0.0 2452828 876 ?? Ss 10:22AM 0:00.02 /bin/sh /usr/local/mysql/bin/mysqld_safe --user=mysql 

Ich habe versucht, die Prozesse sudo kill -15 16179 15599 15514abzubrechen, aber mein Benutzerprozess ändert sich. kill: 16179: No such process. Wenn ich ps aux | grep mysqlwiederholt den ersten Prozess, der Clayton gehört, wiederholt, steigt die PID jedes Mal um 10 an.

Also nächstes habe ich versucht, mysql zu entladen launchctl unload /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plistund launchctl unload /Library/LaunchDaemons/com.mysql.mysql.plistführen Could not find specified service.

Pfui. Ich bin definitiv verblüfft und nicht sicher, wie ich vorgehen soll. Irgendwelche Vorschläge?

0

2 Antworten auf die Frage

0
kenorb

Der Prozess wird wahrscheinlich jedes Mal erneut angezeigt, wenn Sie versuchen, ihn zu töten.

Sie können immer versuchen pgrep, sie auf einmal zu benutzen und zu töten, zB:

kill $(pgrep mysql) 

Ich denke jedoch, die Lösung wäre, die Quelle zu finden, an der sie jedes Mal neu gestartet wird. Versuchen Sie daher, die Liste Ihrer laufenden / System-Daemons mithilfe der launchctlfolgenden Befehle zu überprüfen :

sudo launchctl list 

Dann entladen, wie in beschrieben: Wie stoppen Sie MySQL auf einer Mac OS-Installation?

Wenn Sie das Problem haben mit:

[ERROR] Die mysql.plugin-Tabelle kann nicht geöffnet werden.

Wahrscheinlich führen Sie es falsch aus, indem Sie nicht die richtigen Mysql-Datenverzeichnisse angeben. Vielleicht lohnt es sich, sie erneut zu laden launchctl, zu überprüfen, wie sie zuvor ausgeführt wurden, oder Ihre Konfigurationsdatei zu finden und die Konfiguration zu überprüfen, oder Sie haben die falschen Berechtigungen eingerichtet.

Beispielsyntax, wie Sie es manuell ausführen können:

mysqld --defaults-file=/etc/mysql/my.cnf --basedir=/var/db/mysql --datadir=/var/db/mysql --plugin-dir=/var/db/mysql/lib/plugin --user=mysql --tmpdir=/tmp/mysql/tmpdir --log-error=/var/log/mysql_error_log.err --pid-file=/tmp/mysql/mysql.pid --socket=/tmp/mysql/mysql.sock --port=3306 

Bei Verwendung von MAMP sehen die Befehlszeilenparameter folgendermaßen aus:

/Applications/MAMP/Library/bin/mysqld --defaults-file=/Applications/MAMP/tmp/mysql/my.cnf --basedir=/Applications/MAMP/Library --datadir=/Library/Application Support/appsolute/MAMP PRO/db/mysql --plugin-dir=/Applications/MAMP/Library/lib/plugin --user=mysql --tmpdir=/Applications/MAMP/tmp/mysql/tmpdir --log-error=/Applications/MAMP/logs/mysql_error_log.err --pid-file=/Applications/MAMP/tmp/mysql/mysql.pid --socket=/Applications/MAMP/tmp/mysql/mysql.sock --port=3306 
0
s1ns3nt

Die erste Zeile, die Sie sehen, ist der ps aux | grep mysqlBefehl, den Sie jedes Mal (erneut) ausführen, sodass Sie sich keine Sorgen machen müssen.

Sie sollten in der Lage sein, den MySQL-Prozess nach Namen abzubrechen, wenn Sie verwenden sudo pkill mysql.