2014-02-18 15 views
0

我用这个代码导入(恢复).sql文件:导入MySQL数据库从Java不工作

String command2="/Users/macbookpro/mysql-5.6.16-osx10.7-x86_64/bin/mysql --host  mydb.ckwwsnbi2lvi.us-west-2.rds.amazonaws.com --port 3306 -u XXX -pXXXX testcomm </Users/macbookpro/Downloads/world3.sql" 

Process runtimeProcess; 
try { 
    runtimeProcess = Runtime.getRuntime().exec(command2); 
    processComplete = runtimeProcess.waitFor(); 

    if (processComplete == 0) { 
     System.out.println("Backup restored successfully"); 
     // return true; 
    } else { 
     System.out.println("Could not restore the backup"); 
    } 
} catch (Exception ex) { 
    ex.printStackTrace(); 
} 

命令在终端运作良好,但是当我运行Java代码,它不工作。 任何帮助将不胜感激。

+0

有什么错误?堆栈跟踪?命令行输出?什么不起作用 – Zilvinas

+0

输出“无法恢复备份” –

+0

当我使用命令行时导入数据库,但在运行此Java代码时没有任何事情发生。 –

回答

0

谢谢你的帮助。问题已经解决了。 我正在用字符串数组替换字符串,并使用'-e source'而不是'<'。

这是新的命令:

String[] command2 = new String[]{"/Users/macbookpro/mysql-5.6.16-osx10.7-x86_64/bin/mysql","--host=" + ad,"--port=" + pt,"--user=" + u,"--password="+ p,"testcomm","-e"," source "+"/Users/macbookpro/Downloads/world3.sql"}; 

link对我来说是有帮助的。