回答:
$MyPass
スクリプトで正しく設定されていないことを賭けます。mysqlコマンドラインツールのいずれかが、-p
直後にパスワードが続かないを受け取った場合、パスワードを要求する必要があると想定します。一方、間違ったパスワード(または間違ったユーザー名など)を指定した場合、接続に失敗するだけです。
そのため、次のように、echo
その行の先頭にコマンドを配置してスクリプトを再実行することをお勧めします。
echo $MYSQLDUMP -u backup -p$MyPass $DB
出力リダイレクトを削除することを忘れないでください。
より良い解決策は、ユーザー名とパスワードを構成ファイルに保存し、その構成ファイルを指すことです。コマンドラインに入力すると、psを実行できるすべてのユーザーがサーバーのパスワードを見つけることができます。
--defaults-extra-file=/pathto/database.cnf
をmysqlダンプに渡します。
構成ファイルは次のようにする必要があります。バックアッププロセスのみが構成ファイルを開くことができるように、ファイルシステムのアクセス許可を設定します。
[client]
host = servername.domain.tld
user = backup
password = strongpassword
更新(2016-06-29)mysql 5.6.6以降を実行している場合は、暗号化されたファイルに認証情報を保存できるようにするmysql_config_editorツールを確認する必要があります。これについて私に言及してくれたGiovanniに感謝します。
aoeu1234
、私の設定ファイルがありpassword = 'aoeu1234'
、そうしないと、不正なエラーが発生します。