sql >> Databasteknik >  >> RDS >> Mysql

Använder du Mysql på kommandoraden i osx - kommandot hittades inte?

Så det finns få ställen där terminal letar efter kommandon. Dessa platser lagras i din $PATH variabel. Tänk på det som en global variabel där terminal itererar över för att leta upp efter vilket kommando som helst. Detta är vanligtvis binärer, se hur /bin-mappen vanligtvis refereras till.

/bin mappen har massor av körbara filer inuti den. Det visar sig att detta är kommandon. Dessa olika mappplatser lagras i en global variabel, dvs $PATH separerade med :

Nu brukar program vid installationen ta hand om att uppdatera PATH &talar om för din terminal att jag kan vara alla kommandon i min bin mapp.

Det visar sig att MySql inte gör det vid installationen så vi måste göra det manuellt.

Vi gör det genom att följa kommandot,

export PATH=$PATH:/usr/local/mysql/bin

Om du bryter ner det, export är självförklarande. Se det som ett uppdrag. Så export en variabel PATH med värdet gammalt $PATH concat med ny bin dvs /usr/local/mysql/bin

På detta sätt efter att ha utfört det alla kommandon i /usr/local/mysql/bin finns tillgängliga för oss.

Det finns en liten hake här. Tänk på ett terminalfönster som en instans av programmet och kanske något som $PATH är klassvariabel (kanske ). Observera att detta är ett rent antagande. Så vid stängning förlorar vi det nya uppdraget. Och om vi öppnar terminalen igen kommer vi inte att ha tillgång till vårt kommando igen eftersom sist när vi exporterade, lagrades det i primärminnet som är flyktigt.

Nu måste vi ha våra mysql-binärer exporterade varje gång vi använder terminal. Så vi måste hålla fast vid vår väg.

Du kanske är medveten om att vår terminal använder något som heter dotfiles för att ladda konfigurationen vid terminalinitiering. Jag tycker om att tänka på att det är som en uppsättning saker som skickas till konstruktören varje gång en ny instans av terminal skapas (Återigen ett antagande men nära vad den kan göra). Så ja vid det här laget förstår du poängen vad vi ska göra.

.bash_profile är en av de primära kända dotfile .

Så i följande kommando,

echo 'export PATH=$PATH:/usr/local/mysql/bin' >> ~/.bash_profile

Det vi gör är att spara resultatet av echo d.v.s. mata ut strängen till ~/.bash_profile

Så nu som vi noterade ovan varje gång vi öppnar terminal eller instans av terminal våra dotfiles är laddade. Alltså .bash_profile laddas respektive export som vi har lagt till ovan körs och därmed vår globala $PATH uppdateras och vi får alla kommandon inuti /usr/local/mysql/bin .

P.s.

om du inte kör första kommandot export direkt utan bara kör andra för att fortsätta det? Än för nuvarande körande instans av terminal måste du,

source ~/.bash_profile

Detta säger åt vår terminal att ladda om just den filen.



  1. Kan jag paginera en anpassad fråga utan att åsidosätta standardpagineringen?

  2. hur väljer jag AVG för flera kolumner på en enda rad

  3. Vad är MySQL?

  4. MySQL Performance:Introduktion till JOINs i SQL