Windowsコマンドラインから次のコマンドを実行して、データベースをバックアップします。
...\right_path\mysqldump --add-drop-database --databases my_database_name
--defaults-extra-file=d:\1.cnf
どこ d:\1.cnf
には以下が含まれます。
[client]
user="my_user"
password="my_password"
残念ながら、次のエラーメッセージが表示されました。
mysqldump: unknown variable 'defaults-extra-file=d:\1.cnf'
私が行った場合:
...\right_path\mysqldump --add-drop-database --databases my_database_name
--user="my_user" --password="my_password"
期待どおりに動作します。
何が悪いのですか?
私は答えを見つけました:--defaults-extra-file
は最初のオプションでなければなりません。これは期待どおりに動作します:
...\right_path\mysqldump --defaults-extra-file=d:\1.cnf
--add-drop-database --databases my_database_name
これはLinux固有のものであることに気づきましたが、私の検索でここに移動しました。
私はbitnamiのLAMPスタックを使用していますが、その「mysqldump」は実際にはスクリプトであることがわかりました。
LD_LIBRARY_PATH=/opt/lampstack-5.5.3-0/mysql/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
case "$@" in
*--no-defaults*)
exec $0.bin "$@"
exit
esac
exec $0.bin --defaults-file=/opt/lampstack-5.5.3-0/mysql/my.cnf "$@"
--defaults-file
を渡して動作しないようです(ここで受け入れられている回答に従って)。
この問題にも対応してください。 --defaults-extra-file
オプションが認識されない原因となる別の状況があることがわかりました。
スクリプトでIFSを変更すると、この問題が発生する可能性があります。解決策は、mysqlステートメントを実行する前にIFSをリセットすることです。
参考のために。