2

私はswingアプリからデータベースをエクスポートしたいのですが、バックアップを作成します.

FileWriter fw = null;                   

String path="C:/Users/mypc/Desktop/tesst/back.sql";
String dumpCommand ="mysqldump -u root --password= gestiondestock > "+path;
// Runtime.getRuntime().exec("mysqldump -u root --password= gestiondestock > "+path);
File data = new File(path);

try{
    fw = new FileWriter(data);
    fw.close();
}catch(IOException ex){
    ex.printStackTrace();
}

Runtime rt = Runtime.getRuntime();

try {
    Process proc = rt.exec(dumpCommand);
    InputStream in = proc.getInputStream();
    InputStreamReader read = new InputStreamReader(in,"latin1");
    BufferedReader br = new BufferedReader(read);
    BufferedWriter bw = new BufferedWriter(new FileWriter(data,true));
    String line=null;
    StringBuffer buffer = new StringBuffer();
    
    while ((line=br.readLine())!=null){
        buffer.append(line+"\n");
    }
    String toWrite = buffer.toString();
    bw.write(toWrite);
    bw.close();
    br.close();
} catch (IOException e) {
    e.printStackTrace();
}

しかし、作成テーブルではなくデータベース情報のみを取得して....に挿入します。

私はこの情報だけを取得します:

-- MySQL ダンプ 10.10

-- ホスト: localhost データベース: gestiondestock


-- サーバー バージョン 5.1.36-community-log

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS,    FOREIGN_KEY_CHECKS=0 */;
  /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
   /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

それを修正してSQLファイルに関するすべての情報を取得する方法??、phpmyadminでエクスポートしようとすると、すべての情報を取得します

dumpCommand は、cmd ボックスから手動で正常に動作します

そしてそれをインポートする最良の方法!!


解決

上記で行っていないシェルを実行しないと、リダイレクトを実行できません。だから私はこれをしなければなりません:

 String path="C:/Users/mypc/Desktop/tesst/back.sql";
 String dumpCommand = "mysqldump -u root gestiondestock --result-file="+path;

--result-file="+パス

4

1 に答える 1

0

mysqldumpコマンドに問題があるようです。これの代わりに

mysqldump -u root --password= gestiondestock > path

これを試して、

mysqldump -u root -p[root_password] [database_name] > dumpfilename.sql

このリンクも参照してください。

http://www.thegeekstuff.com/2008/09/backup-and-restore-mysql-database-using-mysqldump/

于 2012-08-27T10:46:16.207 に答える