Mysql
 sql >> Datenbank >  >> RDS >> Mysql

mysqldump gibt Code 6 zurück, wenn es von Java ausgeführt wird, aber der gleiche Befehl funktioniert gut von der Befehlszeile aus

Runtime.exec ist keine Shell , sodass Umleitungen mit> und > zu mysqldump , was ihn als Namen für die Tabelle interpretiert, die Sie exportieren möchten. (Daher Rückgabecode 6, "unzulässige Tabelle".)

Es gibt zwei Lösungen:

  1. Führen Sie eine Shell aus. Verwenden Sie diesen Befehl anstelle des Befehls, den Sie haben:

    cmd.exe /c "mysqldump --user=root --password= --host=localhost dbname > c:\temp\dumpfile.sql"
    
  2. Schreiben Sie die Ausgabe des Befehls mit Process.getInputStream() selbst in eine Datei .