java实现mysql数据库备份与还原

首先,要知道mysql备份的语句怎么写

[sql]  view plain copy
  1. 备份MySQL数据库的命令     
  2.     
  3. mysqldump -hhostname -uusername -ppassword databasename > backupfile.sql    
  4.     
  5. 备份MySQL数据库为带删除表的格式     
  6. 备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库。    
  7.     
  8. mysqldump -–add-drop-table -uusername -ppassword databasename > backupfile.sql    
  9.     
  10.     
  11. 直接将MySQL数据库压缩备份     
  12.     
  13. mysqldump -hhostname -uusername -ppassword databasename | gzip > backupfile.sql.gz    
  14.     
  15.     
  16. 备份MySQL数据库某个(些)表     
  17.     
  18. mysqldump -hhostname -uusername -ppassword databasename specific_table1 specific_table2 > backupfile.sql    
  19.     
  20.     
  21. 同时备份多个MySQL数据库     
  22.     
  23. mysqldump -hhostname -uusername -ppassword –databases databasename1 databasename2 databasename3 > multibackupfile.sql    
  24.     
  25.     
  26. 仅仅备份数据库结构     
  27.     
  28. mysqldump –no-data –databases databasename1 databasename2 databasename3 > structurebackupfile.sql    
  29.     
  30.     
  31. 备份服务器上所有数据库     
  32.     
  33. mysqldump –all-databases > allbackupfile.sql    
  34.     
  35.     
  36. 还原MySQL数据库的命令     
  37.     
  38. mysql -hhostname -uusername -ppassword databasename < backupfile.sql    
  39.     
  40.     
  41. 还原压缩的MySQL数据库     
  42.     
  43. gunzip < backupfile.sql.gz | mysql -uusername -ppassword databasename    
  44.     
  45.     
  46. 将数据库转移到新服务器     
  47.     
  48. mysqldump -uusername -ppassword databasename | mysql –host=*.*.*.* -C databasename   

然后,把需要的弄到cmd中运行一遍看是否自己的会生成正确;

如果出现了“mysqldump 不是内部或外部命令”的话则需要配置我们的环境变量,配好后在cmd中输入path检查下是否正确;

前面的工作做完后,我们就可以来用java完成前面的操作了

[java]  view plain copy
  1. try {  
  2.             Runtime rt = Runtime.getRuntime();  
  3. // root是账户 1234是密码 test数据库名  blog_user
  4.             String cmd ="mysqldump -h localhost -uroot -p1234 test blog_user > e:/mysql.sql"
  5. //一定要加 -h localhost(或是服务器IP地址)  
  6.             rt.exec("cmd /c " + cmd);  
  7.             System.out.println("备份成功!");  
  8.         } catch (IOException e) {  
  9.             System.out.println("备份失败!");  
  10.             e.printStackTrace();  
  11.         }  
  12.               

这样其实就可以了,但是有时候可能会出现cmd中的错误提示,我们就需要这样写的话就可以得到

[java]  view plain copy
  1. try {  
  2.             Runtime rt = Runtime.getRuntime();  
  3. //root是账户 1234是密码 test数据库名  blog_user表名
  4.             String cmd ="mysqldump -h localhost -uroot -p1234 test blog_user > e:/mysql.sql"
  5. //一定要加 -h localhost(或是服务器IP地址) 
  6.             Process process =rt.exec("cmd /c " + cmd);  
  7.             InputStreamReader isr = new InputStreamReader(process.getErrorStream());  
  8.             LineNumberReader input = new LineNumberReader(isr);  
  9.             String line;  
  10.             while((line = input.readLine())!= null){  
  11.                 System.out.println(line+"~~~~~~~~~~");  
  12.             }  
  13.             System.out.println("备份成功!");  
  14.         } catch (IOException e) {  
  15.             System.out.println("备份失败!");  
  16.             e.printStackTrace();  
  17.         }  
  18.       
至于备份和还原就是字符串中的“>” 改变“<”

OK了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值