Mysql
 sql >> Base de données >  >> RDS >> Mysql

Le terminal ne reconnaît pas les commandes mysqld et mysql

Premier problème

Vous essayez d'exécuter la commande mysqld_safe , de sorte que cette commande doit être sur le PATH où le terminal recherche les commandes. (Vous pouvez afficher ces emplacements en exécutant echo $PATH . Les différents emplacements sont séparés par deux-points).

Puisque vous essayez d'exécuter un fichier qui se trouve dans le répertoire local, vous devez taper ./mysqld_safe pour dire au shell que vous donnez un chemin au fichier, sinon il le cherchera dans le PATH . (Vous pouvez exécuter le fichier de n'importe où en spécifiant le chemin complet).

Une autre solution est de faire un lien symbolique dans /usr/local/bin/ qui pointe vers /usr/local/mysql/mysqld_safe` (qui est le chemin de la commande si je vous ai bien compris). De cette façon, vous pouvez exécuter la commande de n'importe où car elle se trouve dans le chemin recherché par le shell.

Deuxième problème

Le cat la commande entourée de backticks est exécutée par le shell avant en exécutant la commande sudo (si le fichier était lisible pour tout le monde, le shell exécutera quelque chose comme :sudo kill 12345 ).

Pour exécuter le cat en tant que root, vous devez exécuter cette commande :

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

De cette façon, vous exécutez bash en tant que root, qui à son tour exécute le kill commande, et lit donc le rodongi.pid fichier en tant que root.