@@ -19,8 +19,9 @@ PASS='<%= @backuppassword %>'
19
19
DIR=<%= @backupdir %>
20
20
ROTATE=<%= [ Integer(@backuprotate) - 1, 0 ].max %>
21
21
22
- # Set MYSQL_PWD env variable. See https://dev.mysql.com/doc/refman/5.1/en/password-security-user.html
23
- export MYSQL_PWD="$PASS"
22
+ # Create temporary mysql cnf file.
23
+ TMPFILE=`mktemp /tmp/backup.XXXXXX` || exit 1
24
+ echo -e "[client]\npassword=$PASS\nuser=$USER" > $TMPFILE
24
25
25
26
PREFIX=mysql_backup_
26
27
<% if @ignore_events %>
@@ -64,20 +65,20 @@ cleanup
64
65
<% end -%>
65
66
<% if @backupdatabases . empty? -%>
66
67
<% if @file_per_database -%>
67
- mysql -u${USER} -s -r -N -e 'SHOW DATABASES' | while read dbname
68
+ mysql --defaults-file=$TMPFILE -s -r -N -e 'SHOW DATABASES' | while read dbname
68
69
do
69
- mysqldump -u${USER} --opt --flush-logs --single-transaction \
70
+ mysqldump --defaults-file=$TMPFILE --opt --flush-logs --single-transaction \
70
71
${ADDITIONAL_OPTIONS} \
71
72
${dbname} <% if @backupcompress %> | bzcat -zc <% end %> > ${DIR}/${PREFIX}${dbname}_`date +%Y%m%d-%H%M%S`.sql<% if @backupcompress %> .bz2<% end %>
72
73
done
73
74
<% else -%>
74
- mysqldump -u${USER} --opt --flush-logs --single-transaction \
75
+ mysqldump --defaults-file=$TMPFILE --opt --flush-logs --single-transaction \
75
76
${ADDITIONAL_OPTIONS} \
76
77
--all-databases <% if @backupcompress %> | bzcat -zc <% end %> > ${DIR}/${PREFIX}`date +%Y%m%d-%H%M%S`.sql<% if @backupcompress %> .bz2<% end %>
77
78
<% end -%>
78
79
<% else -%>
79
80
<% @backupdatabases . each do |db | -%>
80
- mysqldump -u${USER} --opt --flush-logs --single-transaction \
81
+ mysqldump --defaults-file=$TMPFILE --opt --flush-logs --single-transaction \
81
82
${ADDITIONAL_OPTIONS} \
82
83
<%= db %> <% if @backupcompress %> | bzcat -zc <% end %> > ${DIR}/${PREFIX}<%= db %> _`date +%Y%m%d-%H%M%S`.sql<% if @backupcompress %> .bz2<% end %>
83
84
<% end -%>
95
96
<%- end -%>
96
97
<% end -%>
97
98
98
- # Unset MYSQL_PWD env variable
99
- unset MYSQL_PWD
99
+ # Remove temporary file
100
+ rm -f $TMPFILE
0 commit comments