Pessoal, porque esse código não funciona? tentei implementar no meu projeto e parece que foi realizado, mas não gera o arquivo.(WEB)
Nenhum dos exemplos funcionou.
acima é uma de varias tentativas não bem sucedida…
Alguem???
B
BlackkamemRaider
Alguém sabe o porque de não gerar o arquivo com esse comando em java?
J
Joesel
Não sei se é o seu caso, tive o mesmo problema so consegui resolver colocando uma senha no servidor do banco de dados , pelo que vejo o seu esta sem senha ,ai não sei porque não funciona de dentro do java so em cmd mesmo. Tenta por uma senha no servidor do banco e colocar ela na chamada do Runtime, talvez funcione , comigo pelo menos deu certo.
B
BlackkamemRaider
@Joesel infelizmente não deu certo aconteceu a mesma coisa.
Outro teste realizado foi usando o método desta maneira para obter a exception, porem da acesso negado .
Com a classe BufferedReader eu consigo obter o erro do Runtime() ,
mas o erro permanece.
publicvoidbackup(){try{Runtimert=Runtime.getRuntime();String[]commands={"C:\\xampp\\mysql\\bin\\mysqldump.exe"+" -v -v -v --host=localhost --user=root --password= --port=3306 "+"--protocol=tcp --force --allow-keywords --compress "+"--add-drop-table --default-character-set=latin1 --hex-blob "+" --result-file=BACKUP.sql --databases NOMEDB"};Processproc=rt.exec(commands);BufferedReaderstdInput=newBufferedReader(newInputStreamReader(proc.getInputStream()));BufferedReaderstdError=newBufferedReader(newInputStreamReader(proc.getErrorStream()));// read the output from the commandSystem.out.println("Here is the standard output of the command:\n");Strings=null;while((s=stdInput.readLine())!=null){System.out.println(s);}// read any errors from the attempted commandSystem.out.println("Here is the standard error of the command (if any):\n");}while((s=stdError.readLine())!=null){System.out.println(s);}catch(Exceptionexc){exc.printStackTrace();System.out.println(exc);}}
O erro que esta aparecendo é esse:
mysqldump: Got error: 1102: Incorrect database name ’ -v -v -v --host=localhost --user=root --password= --port=3306 --protocol=tcp --force --allow-keywor’ when selecting the database
tentei executar o camando como administrador usando comando runa:
Process proc = rt.exec("runas /userALL Users "+commands);