Escapare una password usando la console mysqldump

Sto eseguendo un mysqldump tramite uno script bash e ho incontrato un problema con una password che contiene caratteri speciali.

mysqldump -hlocalhost -uUSERNAME -pPA$$W0RD DATABASE | gzip > /home/USERNAME/backups-mysql/BACKUP.gz 

Come faccio a sfuggire alla password?

  • Come permettere agli utenti di cambiare la password Linux dal browser web?
  • OWA consente agli utenti di cambiare le loro password AD una volta che le loro password sono scadute?
  • Come posso randomizzare o scagionare la scadenza della password tramite Active Directory?
  • Pratica migliore per memorizzare la password per ssh
  • Outlook che richiede la password dopo il riavvio del ricambio
  • Forgot Password Server 2012
  • Come impostare la password utente postgresql nello script bash
  • Come reimpostare o recuperare la password dell'account amministratore per MySQL?
  • 2 Solutions collect form web for “Escapare una password usando la console mysqldump”

    Ancora meglio, non mettere il nome utente o la password sulla row di command in cui può essere visto da chiunque possa fare ps -ef .

    Creare un file di controllo denominato qualcosa come /etc/mysqldump.cnf :

     [client] user=root password=YOUR_MYSQL_ROOT_PASSWORD 

    … where il client è letterale (non il nome del tuo server) e YOUR_MYSQL_ROOT_PASSWORD è … beh … la tua password di root mysql.

    Quindi invocare così:

     mysqldump --defaults-file=/etc/mysqldump.cnf DATABASE | gzip > /home/USERNAME/backups-mysql/BACKUP.gz 

    Personalmente la mia invocazione è più simile a questa:

     #!/bin/bash NOW=`perl -e 'print time;'` cd /opt/backup/mysql mkdir $NOW for i in `echo "show databases" | mysql -u root --password="MySqlRootPassword" | grep -v Database`; do mysqldump --defaults-file=/etc/mysqldump.cnf --databases $i --opt > $NOW/$i.dump one tar cfpz $NOW.tgz $NOW du -sh $NOW $NOW/* > $NOW.report rm -rf $NOW 

    Non ho mai capito come utilizzare un parametro di --defaults-file simile per mysql, tuttavia poiché questo command funziona abbastanza velocemente il rischio di esposizione è molto più basso … anche se veramente ciò dovrebbe essere risolto.

     mysqldump -hlocalhost -uUSERNAME -p'PA$$W0RD' DATABASE | gzip > /home/USERNAME/backups-mysql/BACKUP.gz 

    Funziona?

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.