sql >> Database >  >> RDS >> Mysql

Mysql gebruiken in de opdrachtregel in osx - opdracht niet gevonden?

Er zijn dus maar weinig plaatsen waar de terminal naar opdrachten zoekt. Deze plaatsen worden opgeslagen in uw $PATH variabel. Zie het als een globale variabele waar terminal itereert om een ​​commando op te zoeken. Dit zijn meestal binaire bestanden, kijk hoe de /bin-map meestal wordt genoemd.

/bin map bevat veel uitvoerbare bestanden. Blijkt dat dit een commando is. Deze verschillende maplocaties worden opgeslagen in één globale variabele, d.w.z. $PATH gescheiden door :

Nu zorgen programma's na installatie meestal voor het bijwerken van PATH &je terminal vertellen dat hey, ik kan alle opdrachten in mijn bin zijn map.

Blijkt dat MySql het niet doet bij de installatie, dus we moeten het handmatig doen.

We doen het door het volgende commando te volgen,

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

Als je het opsplitst, export spreekt voor zich. Zie het als een opdracht. Dus export een variabele PATH met waarde oud $PATH concat met nieuwe bin bijv. /usr/local/mysql/bin

Op deze manier na het uitvoeren van alle commando's in /usr/local/mysql/bin zijn voor ons beschikbaar.

Er is een kleine vangst hier. Beschouw één terminalvenster als één instantie van een programma en misschien iets als $PATH is klasse variabele ( misschien ). Let op dit is pure aanname. Dus bij het sluiten verliezen we de nieuwe opdracht. En als we de terminal heropenen, hebben we geen toegang meer tot onze opdracht, want de laatste keer dat we exporteerden, werd deze opgeslagen in het primaire geheugen dat vluchtig is.

Nu moeten we onze mysql-binaries laten exporteren elke keer dat we terminal gebruiken. We moeten dus concat volhouden op ons pad.

U weet misschien dat onze terminal iets gebruikt genaamd dotfile om de configuratie te laden bij de initialisatie van de terminal. Ik zie het graag als sets van dingen die aan de constructeur worden doorgegeven telkens wanneer een nieuwe instantie van terminal wordt gemaakt (wederom een ​​aanname maar in de buurt van wat het zou kunnen doen). Dus ja, je begrijpt nu wel wat we gaan doen.

.bash_profile is een van de primaire bekende dotfile .

Dus in het volgende commando,

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

Wat we doen is het opslaan van het resultaat van echo d.w.z. uitvoer string naar ~/.bash_profile

Dus zoals we hierboven hebben opgemerkt, elke keer dat we een terminal of instantie van een terminal openen, onze dotfile zijn geladen. Dus .bash_profile wordt respectievelijk geladen en export die we hierboven hebben toegevoegd, wordt uitgevoerd en dus een onze wereldwijde $PATH wordt bijgewerkt en we krijgen alle opdrachten binnen /usr/local/mysql/bin .

P.s.

als u de eerste opdracht niet rechtstreeks exporteert, maar alleen de tweede uitvoert om deze te behouden? Dan moet u voor de huidige actieve instantie van de terminal,

source ~/.bash_profile

Dit vertelt onze terminal om dat specifieke bestand opnieuw te laden.



  1. Postgresql recursieve self-join

  2. SQL SELECTEER alles na een bepaald teken

  3. Laravel:PDOException:kon stuurprogramma niet vinden

  4. Welke methoden kunnen worden gebruikt om verschillende versies van reeds bestaande databases te beheren?