この質問は、サイトや Web 全般で何度も取り上げられていることは知っていますが、それでもなお問題が発生しています。
Windows 7ボックスでMySql Server 5.0を使用しています(xpで問題のプログラムの作業コピーがありますが)Netbeans 7.0(および/または必要に応じてEclipse)および1.6 Java。
この文字列を使用したバックアップ ルーチンがあります ->
String xCommand =
"mysqldump -u username -ppassword dbName -r mySqlBackupFile.sql";
このコードで->
int pComplete = 1;
try{
Process rtProcess = Runtime.getRuntime().exec(xCommand);
pComplete = runtimeProcess.waitFor();
}
catch(Exception e) {
// (I have my own error reporting here)
}
など...そしてすべて正常に動作します。バックアップが正常に作成されました。偉大な。ファイルが有効な SQL インポート スクリプトであることを確認しました。
そのため、Java を使用して復元するルーチンが必要です。このサイトや他のサイトで見つかった「mysql db の復元」の質問に対して、複数(+20) の解決策を試しました。私の最新の化身は ->
String xCommand =
"mysql -u username -ppassword dbName < mySqlBackupFile.sql";
それらのどれも機能していません。すべてに同様の文字列があり、「<」の代わりに「source」を使用すると言う人もいれば、文字列にさまざまなフラグ (「-r」) を含む人もいます。
(エクスポートを機能させるのにも同様の問題があり、最終的にほとんど偶然に、実際に機能する解決策にたどり着きました.Eureka.)
それで、これが(最後に)私の質問です(動作中の復元文字列に加えて);
この問題に対して非常に多くの有効な解決策があるのはなぜですか? どんな場合でも、「すごい!」と言う人がいます。私のために働いた!しかし、それがうまくいかなかった他の人(私のような)。そして、これは実際のソリューションとは関係ありません。つまり、実際に機能するバックアップ/復元ソリューションは、プラットフォーム/オペレーティング システム/Java バージョン/SQL バージョンなどに大きく依存し、大きく異なるようです。
この情報が存在する決定的なガイドはおそらくどこかにありますか?
最初に Java を使用する目的は、多くの場合、Java のプラットフォームに依存しない性質であるため、どのシステムや構成で何が機能し、何が機能しないかを実際に知ることは理にかなっています。
前もって感謝します、ジェフ
私は実際にこの解決策で当分の間自分の問題を解決しました - > https://stackoverflow.com/questions/872494/restore-mysql-from-cmd-line-using-Java-environment] ] 1 しかし今私はdb バックアップ プロセスが netbeans から実行された場合にのみ機能するという問題が発生しています。スタンドアロンの jar からは機能しません。ただし、復元は正常に機能します。(プログラムの残りの部分も正常に動作します)。
うーん...