MySQL equivalente a .pgpass o autenticazione automatica in un processo cron per mySQL


8

Sto scrivendo uno script bash per il backup dei miei database. La maggior parte sono postgresql e in postgres c'è un modo per evitare di eseguire l'autenticazione creando un file ~ / .pgpass che contiene la password di postgres. Ho inserito questo nella home directory di root e l'ho reso chmod 0600, in modo che root potesse scaricare i database postgres senza dover autenticarsi. Ora voglio fare qualcosa di simile per mysql, anche se ho solo un database mysql. Come posso fare questo? Non voglio specificare la password sulla riga di comando per mysqldump perché fa parte di uno script che potrebbe essere in qualche modo visibile agli altri utenti. Esiste un modo migliore (cioè integrato in mysql) per farlo che creare un file che solo root può leggere e quindi leggere per ottenere la password mysql, e quindi utilizzarlo nello script bash come variabile?


Hmm, stranamente, ho trovato qualcosa di promettente attraverso Google piuttosto che la ricerca di serverfault: stackoverflow.com/questions/601995/…
Ibrahim



Sì bleh, a quanto pare manca il mio motore di ricerca.
Ibrahim

Risposte:


6

Crea un ~/.my.cnffile per l'utente che esegue mysql. Dovrebbe contenere quanto segue:

[client]
user = root
password = yourpassword

Una cosa che immagino di aggiungere è che se si esegue lo script usando sudo, è necessario utilizzare -H per assicurarsi che utilizzi la home directory di root. Ma penso che quel problema non dovrebbe essere un problema in un lavoro cron cron, giusto?
Ibrahim

3
Ma come viene gestito per più account? Funzionerà con localhost, ma cosa succede se voglio memorizzare il mio login per un server remoto?
Cerin,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.