用Java来备份还原MySQL数据库


一,先说说基础操作吧,这部分和java无关,只讲mysql的操作,也只讲在window环境下操作,linux下大体相同。

1、如果用mysqldump,你需要安装mysql服务器,如果是linux要装mysql的客户端,因为我们在本机上测试,服务端客户端都要安装,又因为在windows上操作,所以要安装mysql。如果已安装好了,就不用安装了。

2、设置path环境变量,也就是把 mysql安装目录/bin 设在path环境变量中

3、确保你能访问远程的Mysql服务器,方法是打开cmd 输入如下命令 mysql -uroot -p123456 -hlocalhost 其中 -u后面是用户名,-p后面是密码,-h后面是你的mysql服务器的IP或主机名,如果是本地机器不写也没关系,写localhost也行,当然写ip也可以,建议在本地建一个数据库,建几个表,insert点数据。如果备份远程的mysql,那么就要指定远程的服务器的IP了。

4、如果是备份远程的MYSQL一定要想办法让第三步走通,可以百度,就是弄清楚怎么远程访问mysql服务器,如果是本地的话,其实只须保证mysql启动了,用户名和密码都正确就可以了。

5、第三步可以了的前提下,打开cmd 输入如下命令 mysqldump -uroot -p123456 -hlocalhost dataname > d:\mysql.bak 其中 -u后面是用户名,-p后面是密码,-h后面是你的mysql远程服务器或本机(本机可以不指定这项)的IP dataname是你的mysql服务器里的数据库名.d:\mysql.bak 是文件全路径,可以随便指定。 > 代表备份数据到文件,而 < 代表把文件恢复到数据库,所以测试时如果服务器里的数据非常重要,那么要小心使用 < 这个符号(它是还原命令)。

6、第五步成功执行了,会得到一个文件d:\mysql.bak ,这个文件就是备份文件了。

7、恢复命令,就是把第五步的命令中的 > 改成 < 就可以了。

二,上面说了mysqldump的用法,下面说说怎么用java来进行备份,还原工作

1、确定你的环境没问题,也就是上面的命令都可以成功执行。

2、写一个.bat文件,如在d盘根目录下建一个mysqlbak.bat内容为:mysqldump -uroot -p123456 -hlocalhost dataname > d:\mysql.bak ,这个命令不解释了,前面有,接着运行它,看能不能正确得到备份文件。

3、要确保刚建的.bat文件能运行,且正确,然后在java中调用这个.bat文件,得到备份文件,调用方法如下

Java code

//些为java调用.bat文件进行备份的方法,每句代码啥意思,嘿嘿
Process p = Runtime.getRuntime().exec("d:\\mysqlbak.bat");
        p.waitFor();
       
        Scanner s=new Scanner(new FileInputStream("d:\\xuchdata.bak"));
       
        while(s.hasNext())
        {
            System.out.println(s.next());
        }
       
        System.out.println(p.exitValue());

4、如果第三步正确执行了,那么备份文件得到了

5、前面四步是备份,还原的思路和这个差不多,就是先得有备份文件,用java执行你写的还原数据库的.bat文件。

说到底还是用的MySQL本身的命令。

相关内容