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

做备份时一直让人很纠结,连着几天的日子都没睡过好觉。在不停的实践和查阅网上资料重要OK了。

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

  1. 备份MySQL数据库的命令
  2. mysqldump -hhostname -uusername -ppassword databasename > backupfile.sql
  3. 备份MySQL数据库为带删除表的格式
  4. 备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库。
  5. mysqldump -–add-drop-table -uusername -ppassword databasename > backupfile.sql
  6. 直接将MySQL数据库压缩备份
  7. mysqldump -hhostname -uusername -ppassword databasename | gzip > backupfile.sql.gz
  8. 备份MySQL数据库某个(些)表
  9. mysqldump -hhostname -uusername -ppassword databasename specific_table1 specific_table2 > backupfile.sql
  10. 同时备份多个MySQL数据库
  11. mysqldump -hhostname -uusername -ppassword –databases databasename1 databasename2 databasename3 > multibackupfile.sql
  12. 仅仅备份数据库结构
  13. mysqldump –no-data –databases databasename1 databasename2 databasename3 > structurebackupfile.sql
  14. 备份服务器上所有数据库
  15. mysqldump –all-databases > allbackupfile.sql
  16. 还原MySQL数据库的命令
  17. mysql -hhostname -uusername -ppassword databasename < backupfile.sql
  18. 还原压缩的MySQL数据库
  19. gunzip < backupfile.sql.gz | mysql -uusername -ppassword databasename
  20. 将数据库转移到新服务器
  21. mysqldump -uusername -ppassword databasename | mysql –host=*.*.*.* -C databasename
    备份MySQL数据库的命令   
      
    mysqldump -hhostname -uusername -ppassword databasename > backupfile.sql  
      
      
    备份MySQL数据库为带删除表的格式   
    备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库。  
      
    mysqldump -–add-drop-table -uusername -ppassword databasename > backupfile.sql  
      
      
    直接将MySQL数据库压缩备份   
      
    mysqldump -hhostname -uusername -ppassword databasename | gzip > backupfile.sql.gz  
      
      
    备份MySQL数据库某个(些)表   
      
    mysqldump -hhostname -uusername -ppassword databasename specific_table1 specific_table2 > backupfile.sql  
      
      
    同时备份多个MySQL数据库   
      
    mysqldump -hhostname -uusername -ppassword –databases databasename1 databasename2 databasename3 > multibackupfile.sql  
      
      
    仅仅备份数据库结构   
      
    mysqldump –no-data –databases databasename1 databasename2 databasename3 > structurebackupfile.sql  
      
      
    备份服务器上所有数据库   
      
    mysqldump –all-databases > allbackupfile.sql  
      
      
    还原MySQL数据库的命令   
      
    mysql -hhostname -uusername -ppassword databasename < backupfile.sql  
      
      
    还原压缩的MySQL数据库   
      
    gunzip < backupfile.sql.gz | mysql -uusername -ppassword databasename  
      
      
    将数据库转移到新服务器   
      
    mysqldump -uusername -ppassword databasename | mysql –host=*.*.*.* -C databasename 

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

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

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

  1. try {
  2. Runtime rt = Runtime.getRuntime();
  3. String cmd ="mysqldump -h localhost -uroot -p1234 test blog_user > e:/mysql.sql"; //一定要加 -h localhost(或是服务器IP地址)
  4. rt.exec("cmd /c " + cmd);
  5. System.out.println("备份成功!");
  6. } catch (IOException e) {
  7. System.out.println("备份失败!");
  8. e.printStackTrace();
  9. }
try {
			Runtime rt = Runtime.getRuntime();
                        String cmd ="mysqldump -h localhost -uroot -p1234 test blog_user > e:/mysql.sql"; //一定要加 -h localhost(或是服务器IP地址)
                        rt.exec("cmd /c " + cmd);
                        System.out.println("备份成功!");
		} catch (IOException e) {
			System.out.println("备份失败!");
			e.printStackTrace();
		}
			

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

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

OK了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值