我试图将一个充满表格的SQL文件导入MySQL。
我在Java中使用以下命令导入整个文件,并且它在我的机器上本地工作,但是我遇到了使这段代码在Amazon的ec2上运行的问题:
try
{
restoreCmd = new String[]{"mysql ","--user="+doc.getDatabaseUserName(), "--password="+doc.getDatabasePass(),"--host="+doc.getDatabaseHostUri(),"-e","source " + file.getAbsolutePath()};
try {
Runtime.getRuntime().exec(restoreCmd);
System.out.println("Inserted into RDS");
}
catch (Exception ex)
{
ex.printStackTrace();
}
有人能给我一个烘焙代码的例子,它可以用JDBC做类似的工作,读取SQL文件并导入它吗?
修改 我已经更新了代码以等待运行时进程并检查退出值。它返回1,这是一个失败,但命令仍在本地工作。很奇怪,我不确定是什么原因导致退出值为1,如果它在本地插入工作。
更新代码
String[] restoreCmd;
try
{
restoreCmd = new String[]{"mysql ","--user="+doc.getDatabaseUserName(), "--password="+doc.getDatabasePass(),"--host="+doc.getDatabaseHostUri(),"-e","source " + file.getAbsolutePath()};
try {
Process p = Runtime.getRuntime().exec(restoreCmd);
int processComplete = p.waitFor();
if(processComplete == 0){
System.out.println("Backup taken successfully");
System.out.println("Inserted into RDS");
}
else
{
System.out.println("Could not take mysql backup");
}
}
catch (Exception ex)
{
ex.printStackTrace();
}