下班了,利用闲暇时间总结一下如何使用Java语言实现MySQL数据库备份:
- importjava.io.BufferedReader;
- importjava.io.File;
- importjava.io.FileOutputStream;
- importjava.io.IOException;
- importjava.io.InputStreamReader;
- importjava.io.OutputStreamWriter;
- importjava.io.PrintWriter;
- /**
- *MySQL数据库备份
- *
- *@authorGaoHuanjie
- */
- publicclassMySQLDatabaseBackup{
- /**
- *Java代码实现MySQL数据库导出
- *
- *@authorGaoHuanjie
- *@paramhostIPMySQL数据库所在服务器地址IP
- *@paramuserName进入数据库所需要的用户名
- *@parampassword进入数据库所需要的密码
- *@paramsavePath数据库导出文件保存路径
- *@paramfileName数据库导出文件文件名
- *@paramdatabaseName要导出的数据库名
- *@return返回true表示导出成功,否则返回false。
- */
- publicstaticbooleanexportDatabaseTool(StringhostIP,StringuserName,Stringpassword,StringsavePath,StringfileName,StringdatabaseName)throwsInterruptedException{
- FilesaveFile=newFile(savePath);
- if(!saveFile.exists()){//如果目录不存在
- saveFile.mkdirs();//创建文件夹
- }
- if(!savePath.endsWith(File.separator)){
- savePath=savePath+File.separator;
- }
- PrintWriterprintWriter=null;
- BufferedReaderbufferedReader=null;
- try{
- printWriter=newPrintWriter(newOutputStreamWriter(newFileOutputStream(savePath+fileName),"utf8"));
- Processprocess=Runtime.getRuntime().exec("mysqldump-h"+hostIP+"-u"+userName+"-p"+password+"--set-charset=UTF8"+databaseName);
- InputStreamReaderinputStreamReader=newInputStreamReader(process.getInputStream(),"utf8");
- bufferedReader=newBufferedReader(inputStreamReader);
- Stringline;
- while((line=bufferedReader.readLine())!=null){
- printWriter.println(line);
- }
- printWriter.flush();
- if(process.waitFor()==0){//0表示线程正常终止。
- returntrue;
- }
- }catch(IOExceptione){
- e.printStackTrace();
- }finally{
- try{
- if(bufferedReader!=null){
- bufferedReader.close();
- }
- if(printWriter!=null){
- printWriter.close();
- }
- }catch(IOExceptione){
- e.printStackTrace();
- }
- }
- returnfalse;
- }
- publicstaticvoidmain(String[]args){
- try{
- if(exportDatabaseTool("172.16.0.127","root","123456","D:/backupDatabase","2014-10-14.sql","test")){
- System.out.println("数据库成功备份!!!");
- }else{
- System.out.println("数据库备份失败!!!");
- }
- }catch(InterruptedExceptione){
- e.printStackTrace();
- }
- }
- }