Mysql
 sql >> Database >  >> RDS >> Mysql

Il terminale non riconosce i comandi mysqld e mysql

Primo problema

Stai cercando di eseguire il comando mysqld_safe , quindi quel comando dovrebbe trovarsi su PATH dove il terminale cerca i comandi. (Puoi visualizzare queste posizioni eseguendo echo $PATH . Le diverse posizioni sono separate da due punti).

Dato che stai tentando di eseguire un file che si trova nella directory locale, dovresti digitare ./mysqld_safe per dire alla shell che stai fornendo un percorso al file, altrimenti lo cercherà nel PERCORSO . (Puoi eseguire il file da qualsiasi luogo specificando il percorso completo).

Un'altra soluzione è creare un collegamento simbolico in /usr/local/bin/ che punta a /usr/local/mysql/mysqld_safe` (che è il percorso del comando se ho capito bene). In questo modo puoi eseguire il comando da qualsiasi luogo perché si trova nel percorso che la shell sta cercando.

Secondo problema

Il cat il comando circondato da backtick viene eseguito dalla shell prima eseguendo il comando sudo (se il file era leggibile per tutti, la shell eseguirà qualcosa del tipo:sudo kill 12345 ).

Per eseguire il cat come root dovresti eseguire questo comando:

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

In questo modo, esegui bash come root, che a sua volta esegue kill comando, e quindi legge il rodongi.pid file come root.