기존 데이터베이스의 백업 프로세스를 자동화하는 스크립트를 작성하려고 합니다.
내가 겪고 있는 문제는 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"