$MYSQLDUMP " -h$SQL_HOST --user=$SQL_USER --password=$SQL_PASS --default-character-set=$Varchar  --lock-all-tables=true --result-file=$BACKUP_PATH/$BACKUPNAME  $SQL_DBNAME"执行结果
 mysqldump: Got error: 1045: Access denied for user 'root'@'localhost' (using password: NO) when trying to connect每个变量输入的值都是正确的
但是用相同命令是可以的
mysqldump -h172.16.163.23 --user=root --password=123456 --default-character-set=gbk  --lock-all-tables=true --result-file=/home/ftp/120419_1834  kdvnms

解决方案 »

  1.   

    1. 直接把你那个没有变量的命令放脚本中执行试试
    即:mysqldump -h172.16.163.23 --user=root --password=123456 --default-character-set=gbk --lock-all-tables=true --result-file=/home/ftp/120419_1834 kdvnms
    2. 在脚本中 echo 你那个带变量的语句,看看输出是怎样的,是不是你所期望的
    3. 你那个 mysqldump 后面不需要加双引号吧,去掉试试?
    4. 从你的提示来看,是没有输入密码呀,也许你的 $SQL_PASS 没有赋值,或是变量名写错了?
      

  2.   

    1. 直接把你那个没有变量的命令放脚本中执行试试
    即:mysqldump -h172.16.163.23 --user=root --password=123456 --default-character-set=gbk --lock-all-tables=true --result-file=/home/ftp/120419_1834 kdvnms
    2. 在脚本中 echo 你那个带变量的语句,看看输出是怎样的,是不是你所期望的
    3. 你那个 mysqldump 后面不需要加双引号吧,去掉试试?
    4. 从你的提示来看,是没有输入密码呀,也许你的 $SQL_PASS 没有赋值,或是变量名写错了?
      

  3.   

    好像没有问题吧,脚本如下
    SQL_USER=$1
    SQL_PASS=$2
    SQL_HOST=$3BACKUP_PATH=$4
    BACKUPNAME=$5
    Varchar=$6
    $MYSQLDUMP " -h$SQL_HOST --user=$SQL_USER --password=$SQL_PASS --default-character-set=$Varchar  --lock-all-tables=true --result-file=$BACKUP_PATH/$BACKUPNAME  $SQL_DBNAME"