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

Bruger du Mysql på kommandolinjen i osx - kommandoen blev ikke fundet?

Så der er få steder, hvor terminal leder efter kommandoer. Disse steder er gemt i din $PATH variabel. Tænk på det som en global variabel, hvor terminal itererer over for at slå op efter enhver kommando. Dette er normalt binære filer, se hvordan /bin-mappen normalt refereres til.

/bin mappen har masser af eksekverbare filer inde i den. Det viser sig, at dette er kommando. Disse forskellige mappeplaceringer er gemt i én global variabel, dvs. $PATH adskilt af :

Nu sørger programmer efter installationen normalt for at opdatere PATH &fortæller din terminal, at hey, jeg kan være alle kommandoer inde i min bin folder.

Det viser sig, at MySql ikke gør det ved installation, så vi er nødt til at gøre det manuelt.

Vi gør det ved at følge kommandoen

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

Hvis du opdeler det, skal du export er selvforklarende. Tænk på det som en opgave. Så export en variabel PATH med værdien gammel $PATH concat med ny bin dvs. /usr/local/mysql/bin

På denne måde efter at have udført det alle kommandoerne inde i /usr/local/mysql/bin er tilgængelige for os.

Der er en lille fangst her. Tænk på et terminalvindue som en forekomst af et program og måske noget som $PATH er klassevariabel (måske). Bemærk dette er ren antagelse. Så ved afslutning mister vi den nye opgave. Og hvis vi genåbner terminalen, vil vi ikke have adgang til vores kommando igen, for sidst da vi eksporterede, blev den gemt i den primære hukommelse, som er flygtig.

Nu skal vi have vores mysql binære filer eksporteret hver gang vi bruger terminal. Så vi er nødt til at blive ved med at samle os på vores vej.

Du er måske klar over, at vores terminal bruger noget, der hedder dotfiles for at indlæse konfiguration på terminalinitialisering. Jeg kan godt lide at tænke på, at det er som sæt ting, der sendes til constructor, hver gang en ny forekomst af terminal oprettes (igen en antagelse, men tæt på, hvad den kunne gøre). Så ja nu forstår du pointen, hvad vi skal gøre.

.bash_profile er en af ​​de primære kendte dotfile .

Så i følgende kommando,

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

Det, vi gør, er at gemme resultatet af echo dvs. output streng til ~/.bash_profile

Så nu, som vi bemærkede ovenfor, hver gang vi åbner terminal eller forekomst af terminal vores dotfiles er indlæst. Så .bash_profile er henholdsvis indlæst og export som vi har tilføjet ovenfor, køres og dermed vores globale $PATH bliver opdateret, og vi får alle kommandoerne inde i /usr/local/mysql/bin .

P.s.

hvis du ikke kører første kommando eksport direkte, men bare kører anden for at fortsætte det? End for den aktuelle kørende forekomst af terminal skal du,

source ~/.bash_profile

Dette fortæller vores terminal om at genindlæse den pågældende fil.



  1. Bedre måde at gemme adgangskode i mysql, som også kan dekrypteres ved hjælp af php

  2. En tilgang til indeksjustering – del 1

  3. Anvendes MySQL LIMIT før eller efter ORDER BY?

  4. MySQL vælg koordinater inden for rækkevidde