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?

  • Aggiungere una nuova tabella per replicare senza riavviare MySQL?
  • Come faccio a profilare MySQL?
  • Creare una replica completa del server web utilizzando una società di hosting diversa, è logico?
  • hanno bisogno di consigli su come build un'architettura scalabile per moodle
  • MySQL - Se lo slave non è in linea e torna in linea, prende automaticamente i dati dal master?
  • Estensione temporanea del timeout di sudo per la durata di uno script di installazione
  • Collegamenti Mysql appesi allo stato di login
  • Alter charset e collation in tutte le colonne in tutte le tabelle in MySQL
  • Buon libro Oracle per gli utenti MySQL?
  • SELinux: Permettere Apache a parlare con MySQL su CentOS
  • Come posso ripristinare un database MySQL da Time Machine Backup?
  • Mysql - Accesso negato per utente 'root' @ 'xxxx'
  • 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.