既存のデータベースのバックアッププロセスを自動化するスクリプトを作成しようとしています。
私が経験している問題は、mysqldump
スペースで区切られた2つの単語からなるコマンド(以下を参照)にデータベースパスワードを渡すことです。
# 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"