Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Terminal erkennt mysqld- und mysql-Befehle nicht

Erstes Problem

Sie versuchen, den Befehl mysqld_safe auszuführen , also sollte sich dieser Befehl auf dem PATH befinden wo das Terminal nach Befehlen sucht. (Sie können diese Speicherorte anzeigen, indem Sie echo $PATH ausführen . Die verschiedenen Standorte werden mit einem Doppelpunkt getrennt).

Da Sie versuchen, eine Datei auszuführen, die sich im lokalen Verzeichnis befindet, sollten Sie ./mysqld_safe eingeben um der Shell mitzuteilen, dass Sie einen Pfad zur Datei angeben, andernfalls sucht sie im PATH danach . (Sie können die Datei von überall ausführen, indem Sie den vollständigen Pfad angeben).

Eine andere Lösung besteht darin, einen symbolischen Link in /usr/local/bin/ zu erstellen das zeigt auf /usr/local/mysql/mysqld_safe` (das ist der Pfad zum Befehl, wenn ich Sie richtig verstanden habe). Auf diese Weise können Sie den Befehl von überall ausführen, da er sich in dem Pfad befindet, nach dem die Shell sucht.

Zweites Problem

Die cat Der von Backticks umgebene Befehl wird vorher von der Shell ausgeführt Ausführen des sudo-Befehls (Wenn die Datei für alle lesbar war, führt die Shell so etwas aus wie:sudo kill 12345 ).

Um die cat auszuführen Als root sollten Sie diesen Befehl ausführen:

sudo bash -c 'kill `cat /usr/local/mysql/data/rodongi.pid`'

Auf diese Weise führen Sie bash als root aus, was wiederum kill ausführt Befehl und liest somit die rodongi.pid Datei als root.