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

Utilizzo di Mysql nella riga di comando in osx - comando non trovato?

Quindi ci sono pochi posti in cui il terminale cerca i comandi. Questi luoghi sono memorizzati nel tuo $PATH variabile. Pensala come una variabile globale in cui il terminale esegue un'iterazione per cercare qualsiasi comando. Di solito sono binari, guarda come viene solitamente fatto riferimento alla cartella /bin.

/bin cartella contiene molti file eseguibili al suo interno. Si scopre che questo è il comando. Queste diverse posizioni delle cartelle sono memorizzate all'interno di una variabile globale, ad esempio $PATH separato da :

Ora di solito i programmi al momento dell'installazione si occupano dell'aggiornamento di PATH e dicendo al tuo terminale che ehi, posso essere tutti i comandi all'interno del mio bin cartella.

Si scopre che MySql non lo fa al momento dell'installazione, quindi dobbiamo farlo manualmente.

Lo facciamo seguendo il comando,

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

Se lo scomponi, export è autoesplicativo. Pensalo come un incarico. Quindi export una variabile PATH con valore vecchio $PATH concat con il nuovo bin cioè /usr/local/mysql/bin

In questo modo dopo aver eseguito tutti i comandi all'interno di /usr/local/mysql/bin sono a nostra disposizione.

C'è un piccolo problema qui. Pensa a una finestra di terminale come a un'istanza del programma e forse qualcosa come $PATH è una variabile di classe (forse). Nota che questa è una pura ipotesi. Quindi alla chiusura perdiamo il nuovo incarico. E se riapriremo il terminale non avremo più accesso al nostro comando perché l'ultima volta che abbiamo esportato, era archiviato nella memoria primaria che è volatile.

Ora dobbiamo esportare i nostri binari mysql ogni volta che utilizziamo il terminale. Quindi dobbiamo persistere nel nostro cammino.

Potresti essere consapevole del fatto che il nostro terminale utilizza qualcosa chiamato dotfiles per caricare la configurazione all'inizializzazione del terminale. Mi piace pensare che siano insiemi di cose passati al costruttore ogni volta che viene creata una nuova istanza di terminale (di nuovo un presupposto ma vicino a ciò che potrebbe fare). Quindi sì, ora hai capito cosa faremo.

.bash_profile è uno dei principali dotfile conosciuti .

Quindi nel comando seguente,

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

Quello che stiamo facendo è salvare il risultato di echo cioè la stringa di output in ~/.bash_profile

Quindi ora, come abbiamo notato sopra, ogni volta che apriamo il terminale o l'istanza del terminale i nostri dotfiles sono caricati. Quindi .bash_profile viene caricato rispettivamente e export che abbiamo aggiunto sopra viene eseguito e quindi un nostro $PATH globale viene aggiornato e riceviamo tutti i comandi all'interno di /usr/local/mysql/bin .

P.s.

se non stai eseguendo direttamente il primo comando export ma stai solo eseguendo il secondo per mantenerlo persistente? Rispetto all'attuale istanza in esecuzione del terminale,

source ~/.bash_profile

Questo dice al nostro terminale di ricaricare quel particolare file.