我正在尝试构建一个脚本来自动执行现有数据库的备份过程。
我遇到的问题是将mysqldump
数据库密码传递给命令(见下文),该密码包含两个由空格分隔的单词。
# database credentials
DATABASEHOST="localhost"
DATABASEUSER="username"
DATABASEPASSWORD="Compound Password"
DATABASESCHEMA="schema"
# Local directory of mysqldump file
LOCALDIR=/home/user/db-bkp
#--- end config
mysqldump --host=$DATABASEHOST --user=$DATABASEUSER --password=$DATABASEPASSWORD $DATABASESCHEMA > $LOCALDIR/`date +%Y%m%d`_bkp_$DATABASESCHEMA.sql
当我运行脚本时,相关的mysqldump
相关消息是:
mysqldump: Got error: 1045: "Access denied for user 'username'@'localhost' (using password: YES)" when trying to connect
我在这里做错了什么以及如何解决它?
答案1
引用你的变量:
mysqldump --host="$DATABASEHOST" \
--user="$DATABASEUSER" \
--password="$DATABASEPASSWORD" \
--database="$DATABASESCHEMA" \
> "$LOCALDIR"/"$(date +%Y%m%d)_bkp_$DATABASESCHEMA.sql"