diff --git a/bin/pt-mysql-summary b/bin/pt-mysql-summary index ad829b41..4233722d 100755 --- a/bin/pt-mysql-summary +++ b/bin/pt-mysql-summary @@ -2422,7 +2422,7 @@ main() { trap sigtrap HUP INT TERM local MYSQL_ARGS="$(mysql_options)" - EXT_ARGV="$EXT_ARGV $MYSQL_ARGS" + EXT_ARGV="$(arrange_mysql_options "$EXT_ARGV $MYSQL_ARGS")" # Check if mysql and mysqldump are there, otherwise bail out early. # But don't if they passed in --read-samples, since we don't need @@ -2980,7 +2980,7 @@ pathname. =item --host -short form: -h; type: string; default: localhost +short form: -h; type: string Host to connect to. diff --git a/bin/pt-stalk b/bin/pt-stalk index 2f84c500..6d916814 100755 --- a/bin/pt-stalk +++ b/bin/pt-stalk @@ -486,6 +486,21 @@ mysql_options() { echo $MYSQL_ARGS } +arrange_mysql_options() { + local opts="$1" + + local rearranged="" + for opt in $opts; do + if [ "$(echo $opt | awk -F= '{print $1}')" = "--defaults-file" ]; then + rearranged="$opt $rearranged" + else + rearranged="$rearranged $opt" + fi + done + + echo "$rearranged" +} + # ########################################################################### # End mysql_options package # ########################################################################### @@ -1388,7 +1403,7 @@ if [ "${0##*/}" = "$TOOL" ] \ fi MYSQL_ARGS="$(mysql_options)" - EXT_ARGV="$EXT_ARGV $MYSQL_ARGS" + EXT_ARGV="$(arrange_mysql_options "$EXT_ARGV $MYSQL_ARGS")" # Check that mysql and mysqladmin are in PATH. If not, we're # already dead in the water, so don't bother with cmd line opts, @@ -1935,7 +1950,7 @@ pathname. =item --host -short form: -h; type: string; default: localhost +short form: -h; type: string Host to connect to. diff --git a/lib/bash/mysql_options.sh b/lib/bash/mysql_options.sh index a3db9ffd..c248bd1f 100644 --- a/lib/bash/mysql_options.sh +++ b/lib/bash/mysql_options.sh @@ -47,6 +47,22 @@ mysql_options() { echo $MYSQL_ARGS } +# This basically makes sure that --defaults-file comes first +arrange_mysql_options() { + local opts="$1" + + local rearranged="" + for opt in $opts; do + if [ "$(echo $opt | awk -F= '{print $1}')" = "--defaults-file" ]; then + rearranged="$opt $rearranged" + else + rearranged="$rearranged $opt" + fi + done + + echo "$rearranged" +} + # ########################################################################### # End mysql_options package # ###########################################################################