sql >> Database >  >> RDS >> Mysql

Terminal herkent mysqld- en mysql-opdrachten niet

Eerste probleem

U probeert het commando mysqld_safe . uit te voeren , zodat het commando op het PATH moet staan waar de terminal naar opdrachten zoekt. (Je kunt deze locaties bekijken door echo $PATH uit te voeren . De verschillende locaties zijn gescheiden door een dubbele punt).

Aangezien u een bestand probeert uit te voeren dat zich in de lokale map bevindt, typt u ./mysqld_safe om de shell te vertellen dat je een pad naar het bestand geeft, anders zal het ernaar zoeken in het PATH . (U kunt het bestand overal uitvoeren door het volledige pad op te geven).

Een andere oplossing is om een ​​symbolische link te maken in /usr/local/bin/ dat verwijst naar /usr/local/mysql/mysqld_safe` (wat het pad naar het commando is als ik je goed heb begrepen). Op die manier kun je het commando overal uitvoeren, omdat het zich in het pad bevindt dat de shell zoekt.

Tweede probleem

De cat commando omgeven door backticks wordt uitgevoerd door de shell before het uitvoeren van het sudo-commando (als het bestand voor iedereen leesbaar was, zal de shell iets uitvoeren als:sudo kill 12345 ).

De cat uitvoeren als root moet je dit commando uitvoeren:

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

Op die manier voer je bash uit als root, die op zijn beurt de kill . uitvoert commando, en leest dus de rodongi.pid bestand als root.




  1. Kan geen niet-latijnse symbolen invoegen in MySQL

  2. T-SQL voor het vinden van redundante indexen

  3. MySQL:een MySQL-database klonen op dezelfde MySql-instantie

  4. JDBC met MySQL erg traag, weet niet waarom