web-dev-qa-db-ja.com

mysqldumpの問題:「--defaults-extra-file」オプションが期待どおりに機能しない

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"

期待どおりに動作します。

何が悪いのですか?

51
Misha Moroshko

私は答えを見つけました:--defaults-extra-fileは最初のオプションでなければなりません。これは期待どおりに動作します:

...\right_path\mysqldump --defaults-extra-file=d:\1.cnf
                         --add-drop-database --databases my_database_name
94
Misha Moroshko

これは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を渡して動作しないようです(ここで受け入れられている回答に従って)。

1
Peter K.

この問題にも対応してください。 --defaults-extra-fileオプションが認識されない原因となる別の状況があることがわかりました。

スクリプトでIFSを変更すると、この問題が発生する可能性があります。解決策は、mysqlステートメントを実行する前にIFSをリセットすることです。

参考のために。

0
cynkiller