Kopieren Sie den Codecode wie folgt:
import java.io.BufferedReader;
java.io.File importieren;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
öffentlicher Klassentest {
public static void main(String[] args) löst eine IOException{ aus
backup("d:////d.sql");
Recovery("d:////d.sql");
}
öffentliches statisches Void-Backup (String-Pfad) löst eine IOException{ aus
Laufzeit runtime = Runtime.getRuntime();
//-u wird vom Benutzernamen gefolgt, -p ist das Passwort, es ist am besten, keine Leerzeichen nach -p zu haben, -family ist der Name der Datenbank
Prozess Prozess = runtime.exec("mysqldump -u root -p123456 Familie");
InputStream inputStream = process.getInputStream();//Holen Sie sich den Eingabestream und schreiben Sie ihn als .sql-Datei
InputStreamReader read = new InputStreamReader(inputStream);
BufferedReader br = new BufferedReader(reader);
Zeichenfolge s = null;
StringBuffer sb = new StringBuffer();
while((s = br.readLine()) != null){
sb.append(s+"//r//n");
}
s = sb.toString();
System.out.println(s);
Datei file = neue Datei (Pfad);
file.getParentFile().mkdirs();
FileOutputStream fileOutputStream = new FileOutputStream(file);
fileOutputStream.write(s.getBytes());
fileOutputStream.close();
br.close();
reader.close();
inputStream.close();
}
public static void restart(String path) löst eine IOException{ aus
Laufzeit runtime = Runtime.getRuntime();
//-u folgt dem Benutzernamen, -p ist das Passwort, es ist am besten, nach -p keine Leerzeichen zu haben, -family ist der Name der Datenbank, --default-character-set=utf8, dieser Satz muss hinzugefügt werden
// Weil ich diesen Satz nicht hinzugefügt habe, wurde das Programm erfolgreich ausgeführt, aber der Inhalt in der Datenbank ist immer noch der vorherige Inhalt. Es ist am besten, die fertige SQL zu schreiben und in cmd einzufügen, um sie auszuführen, bevor Sie wissen, dass Fehler wird gemeldet.
//Fehlermeldung:
//mysql: Der Zeichensatz „utf-8“ ist kein kompilierter Zeichensatz und wird nicht in „ angegeben.
//C://Program Files//MySQL//MySQL Server 5.5//share//charsets//Index.xml' Datei FEHLER 2019 (HY000): Kann nicht
// Zeichensatz utf-8 initialisieren (Pfad: C://Programme//MySQL//MySQL Server 5.5//share//charsets//),
// Ein weiteres lästiges Codierungsproblem. Legen Sie beim Wiederherstellen einfach die Standardcodierung fest.
Prozess Prozess = runtime.exec("mysql -u root -p123456 --default-character-set=utf8-Familie");
OutputStream OutputStream = process.getOutputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(path)));
String str = null;
StringBuffer sb = new StringBuffer();
while((str = br.readLine()) != null){
sb.append(str+"//r//n");
}
str = sb.toString();
System.out.println(str);
OutputStreamWriterwriter = new OutputStreamWriter(outputStream,"utf-8");
Writer.write(str);
Writer.flush();
OutputStream.close();
br.close();
Writer.close();
}
}