Per utilizzare un file che si trova ovunque all'interno del sistema operativo, utilizzare --defaults-extra-filead esempio:
mysqldump --defaults-extra-file=/path/.sqlpwd [database] > [desiredoutput].sql
Nota: .sqlpwdè solo un nome file di esempio. Puoi usare quello che desideri.
Nota: MySQL verificherà automaticamente ~/.my.cnfquali possono essere utilizzati al posto di--defaults-extra-file
Se usi CRON come me, prova questo!
mysqldump --defaults-extra-file=/path/.sqlpwd [database] > "$(date '+%F').sql"
Autorizzazione richiesta e proprietà raccomandata
sudo chmod 600 /path/.sqlpwd && sudo chown $USER:nogroup /path/.sqlpwd
.sqlpwd Contenuti:
[mysqldump]
user=username
password=password
Altri esempi da passare .cnfo.sqlpwd
[mysql]
user=username
password=password
[mysqldiff]
user=username
password=password
[client]
user=username
password=password
Se si desidera accedere automaticamente a un database, è necessario [mysql]ad esempio la voce.
Ora puoi creare un alias che ti connette automaticamente al DB
alias whateveryouwant="mysql --defaults-extra-file=/path/.sqlpwd [database]"
Puoi anche inserire la password .sqlpwde passare il nome utente tramite lo script / cli. Non sono sicuro che questo migliorerebbe la sicurezza o no, che sarebbe una domanda diversa tutti insieme.
Per completezza, ti dirò che puoi fare quanto segue, ma è estremamente insicuro e non dovrebbe mai essere usato in un ambiente di produzione:
mysqldump -u [user_name] -p[password] [database] > [desiredoutput].sql
Nota: NON c'è SPAZIO tra -p e la password.
Ad esempio, -pPassWordè corretto mentre -p Passwordnon è corretto.