web-dev-qa-db-ja.com

crontabにパスワードなしのMysqldump

Mysqldumpとcronjobsを使用してデータベースをバックアップしようとしています。

さて、私は次のコマンドをユーザーrootのcrontabに追加しました:

*/30 * * * * mysqldump -u root -pVERYSECUREPASSWORD --all-databases > /var/www/cloud/dump_komplett.sql &> /dev/null

これは今のところ問題なく動作しますが、問題はこのコマンドでパスワードが設定されていることです。

したがって、次のような.database.cnfファイルを含めたいと思います。

[mysqldump]
user=root
password=VERYSECUREPASSWORD

mysqldumpコマンドをに変更しました

mysqldump --defaults-extra-file="/var/crons/mysql/.database.cnf" --all-databases -u root > /var/www/cloud/dump_komplett.sql

この問題を解決するために。

しかし、このコマンドは次のエラーで失敗します。

mysqldump: Got error: 1045: Access denied for user 'root'@'localhost' (using password: YES) when trying to connect

何が悪いのかわかりません。

これが私も試したいくつかのコマンドです:

mysqldump --defaults-extra-file="/var/crons/mysql/.database.cnf" --all-databases > /var/www/cloud/dump_komplett.sql
mysqldump --defaults-file="/var/crons/mysql/.database.cnf" --all-databases > /var/www/cloud/dump_komplett.sql
mysqldump --defaults-file="/var/crons/mysql/.database.cnf" --all-databases -u root > /var/www/cloud/dump_komplett.sql

および.database.cnfの内容私も試しました:

[client]
user=root
password=VERYSECUREPASSWORD

[mysqldump]
Host=localhost
user=root
password=VERYSECUREPASSWORD

[client]
Host=localhost
user=root
password=VERYSECUREPASSWORD
12
Marcel Balzer

ユーザーは、uパラメーターを使用してファイルではなく、コマンドで指定する必要があります。

cronを使用してmysqldumpジョブをスケジュールする方法の詳細については、 この回答 を確認してください。

7
mu 無

パスワードは引用符で囲む必要があることがわかりました

[client]
user=root
password="VERYSECUREPASSWORD"

英数字以外の記号がたくさん含まれているパスワードでは機能しない理由を理解するのに少し時間がかかりました

4
NomadHack