Já tentei de todas as formas
já dei privilegios para pastar já tentei no diretorio dos meus documentos
já tentei utilizar o dump do workbench do xampp
e continua a mesma coisa…
alguém me salva pff
meu metodo:
public boolean backupDB(String dbName, String dbUserName, String dbPassword, String path) {
String[] executeCmd = new String[] {
"C:\\Program Files\\MySQL\\MySQL Workbench 8.0 CE\\mysqldump.exe",
"-u",
dbUserName,
"-p",
dbPassword,
"--add-drop-database",
"-B",
dbName,
"-r",
path
};
final ProcessBuilder pb = new ProcessBuilder(Arrays.asList(executeCmd));
final Process p;
try {
p = pb.start();
int processComplete = p.waitFor();
if (processComplete == 0) {
System.out.println("Backup created successfully");
return true;
} else {
System.out.println("Could not create the backup");
BufferedReader reader = new BufferedReader(new InputStreamReader(p.getErrorStream()));
String line = null;
while ( (line = reader.readLine()) != null) {
System.out.println(line);
}
}
} catch (IOException | InterruptedException e) {
e.printStackTrace();
}
return false;
}
meu main:
boolean backupDB = backup.backupDB("bd_relatorios", "root", "", "C:\\Users\\Gabriel\\Documents\\Nova pasta (2)\\das");
error:
mysqldump: Can't create/write to file 'C:\Users\Gabriel\Documents\Nova pasta (2)\das' (OS errno 13 - Permission denied)
Consegue executar o mysqldump em linha de comando?
Caso afirmativo, como é sua linha de comando?
consigo sim:
public boolean backupDB(String dbName, String dbUserName, String dbPassword, String path) {
String[] executeCmd = new String[] {
"C:\\xampp\\mysql\\bin\\mysqldump.exe ",
"-u",
dbUserName,
"-p",
dbPassword,
"--add-drop-database",
"-B",
dbName,
"-r",
path
};
final ProcessBuilder pb = new ProcessBuilder(Arrays.asList(executeCmd));
final Process p;
try {
p = pb.start();
int processComplete = p.waitFor();
if (processComplete == 0) {
System.out.println("Backup created successfully");
return true;
} else {
System.out.println("Could not create the backup");
BufferedReader reader = new BufferedReader(new InputStreamReader(p.getErrorStream()));
String line = null;
while ( (line = reader.readLine()) != null) {
System.out.println(line);
}
}
} catch (IOException | InterruptedException e) {
e.printStackTrace();
}
return false;
}
é um arraylist
saiu o error porém ficar
int processComplete = p.waitFor(); quando chega nessa parte o programa continua executando mas não sai dai e não vai pro if e else

Você postou o código Java, perguntei se você consegue executar em linha de comando.
Lá no prompt do Windows.
Opa eu adicionei o mysql ao meu path
utilizei o comando mysql no cmd e deu isso:
Se você não está nem conseguindo executar o programa em linha de comando, como espera executar a partir do Java? 
A mensagem abaixo:
'mysqldump' não é reconhecido como um comando interno ou externo, um programa operável ou um arquivo em lotes.
Significa que a pasta do mysqldump não está na variável de ambiente PATH
Ou você adiciona a pasta à variável ou executa o programa a partir da pasta dele.
O código que escreveu no Java equivale à isso aqui:
C:\xampp\mysql\bin\mysqldump.exe -u root -p "" --add-drop-database -B bd_relatorios -r "C:\Users\Gabriel\Documents\Nova pasta (2)\das"
Mas em linha de comando você tentou executar isso aqui:
mysqldump -u root -p bd_relatorios > C:\MudinhoX\bacxk.sql
Pra mim os parâmetros parecem bem diferentes.
opa desculpa eu tinha esquecido de editar o post:
Opa eu adicionei o mysql ao meu path
porém deu esse error no cmd
(está procurnado um usuario aleatorio e não o root)
no caso seria:
mysqldump -u root -p --add-drop-database -B bd_relatorios > C:\MudinhoX\bacxk.sql
(executando isso abre um outro cmd bem rápido e fecha na mesma hora porém o arquivo fica em branco)
?
Consegui executar pelo cmd com esse comando:
mysqldump --column-statistics=0 -u root -p bd_relatorios > C:\MudinhoX\bacxk.sql
isso pelo mysql-8.0.16-winx64
agora pelo xampp o arquivo fica em branco
com
mysqldump --column-statistics=0 -u root -p bd_relatorios > C:\MudinhoX\bacxk.sql
ou sem
mysqldump -u root -p bd_relatorios > C:\MudinhoX\bacxk.sql
(eu mudei o path antes de usar)
e utilizando isso no java continua do msm jeito 
Verificou se o serviço está ativo? Veja se o serviço está rodando (Win + R -> services.msc -> Enter) e procure ver se o MySQL ou o Xampp está como iniciado. No manual do MySQL tem algo sobre isso: https://dev.mysql.com/doc/refman/8.0/en/cannot-create.html.
1 curtida