如题

解决方案 »

  1.   

    用mysqldump命令,不要用java写,等你写完,我已经备份了大半个月的历史数据。
      

  2.   

    第一种可能,你的描述错误,那个不是数据备份,而是数据导出,这个是最常见的功能,如果只是table形式,无非就是循环。网上例子一大堆第二种可能,你的设计问题,备份比较耗资源、时间,如果换我,绝不会开发这样一个功能。到时候,数据量大,大家一起点,然后一起庆祝服务器崩溃。
      

  3.   

    为什么会设计成这样我也不是很清楚,
    Runtime.getRuntime().exec("mysqldump --set-charset=utf8 数据库名 "+表名  --user=root --password= ");
    要用这样的代码进行备份,但是提示java.io.IOException: CreateProcess: mysqldump --set-charset=utf8 da table --user=root --password= error=2
      

  4.   

    是路径不对,但是用的是外网的服务器,怎么知道他有没有安装MySQL,又怎么能知道mysql的运行路径,所以这种备份能实现吗?
      

  5.   

    要是不知道数据库的路径应该没办法实现备份的,要是楼主可以拿到Mysql配置也可以找一下Mysql安装路径。
      

  6.   

    新建一个Java类  在里面写一个备份方法   用io流写进到目标文件就ok了仅供参考public static void main(String[] args) {          
            backup();            
        }      
            
        public static void backup() {      
            try {      
                Runtime rt = Runtime.getRuntime();      
         
                // 调用 mysql 的 cmd:      
                Process child = rt      
                        .exec("mysqldump -u root -p密码 数据库名 表名 --set-charset=utf8 ");    // 不加表名为备份整个数据库 
                          
                InputStream in = child.getInputStream();    
                                 
                InputStreamReader xx = new InputStreamReader(in, "utf8");                 
                String inStr;      
                StringBuffer sb = new StringBuffer("");      
                String outStr;      
       
                BufferedReader br = new BufferedReader(xx);      
                while ((inStr = br.readLine()) != null) {      
                    sb.append(inStr + "\r\n");      
                }      
                outStr = sb.toString();      
                     
                // 要用来做导入用的sql目标文件:      
                FileOutputStream fout = new FileOutputStream(      
                        "c:/test.sql");      
                OutputStreamWriter writer = new OutputStreamWriter(fout, "utf8");      
                writer.write(outStr);      
        
                writer.flush();      
         
                in.close();      
                xx.close();      
                br.close();      
                writer.close();      
                fout.close();         
         
            } catch (Exception e) {      
                e.printStackTrace();      
            }      
         
        }      
      

  7.   

    这代码运行不了,有错误,这个错误就是我解决不了的问题,还请高手指点一下,先谢了上面那位
    java.io.IOException: CreateProcess: mysqldump -u root -p dlqihua8 buildings --set-charset=utf8 error=2
    at java.lang.ProcessImpl.create(Native Method)
    at java.lang.ProcessImpl.<init>(ProcessImpl.java:81)
    at java.lang.ProcessImpl.start(ProcessImpl.java:30)
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:451)
    at java.lang.Runtime.exec(Runtime.java:591)
    at java.lang.Runtime.exec(Runtime.java:429)
    at java.lang.Runtime.exec(Runtime.java:326)
    at com.test.backup(test.java:23)
    at com.test.main(test.java:15)
      

  8.   

    楼上的,你需要指定mysqldump  的 绝对路径就OK了