MySQL数据库的备份及恢复

MySQL数据库的备份及恢复完全可以在B/S下实现,其他数据库也是,这是肯定的,但是怎么实现呢?

首先,建两个个bat文件或者cmd文件(bat可在98及NT下执行,cmd只能在NT下执行),

备份:

rem 判断mysql服务是否启动,然后将查询结果输出到server.log文件里
netstat -na | (find "0.0.0.0:3306" & find "LISTENING")>server.log
rem 手工建立一个空的文件temp.log,为了和server.log文件相比较
rem 将server.log与temp.log相比较,如果mysql服务已经启动,那么server.log文件中就会有信息。否则为空
rem 如果mysql服务已经启动,那么就直接用mysqldump进行备份;如果没有启动,也就是server.log文件为空,那么就会先启动数据库,然后再备份

fc server.log temp.log

if ERRORLEVEL = = 0 goto backup
@echo Trying to 启动mysql服务 …………OK
net start mysql5

:backup
@echo mysql服务已经启动,正在备份...
cd ../back
set DBBACK_HOME=%cd%
cd ../service/mysql/bin
mysqldump -uroot -piamtop wcpmis > %DBBACK_HOME%/back_%date:~0,10%.sql
if ERRORLEVEL = = 0 echo 数据库备份完成!

恢复:

rem 判断mysql服务是否启动,然后将查询结果输出到server.log文件里
netstat -na | (find "0.0.0.0:3309" & find "LISTENING")>server.log
rem 手工建立一个空的文件temp.log,为了和server.log文件相比较
rem 将server.log与temp.log相比较,如果mysql服务已经启动,那么server.log文件中就会有信息。否则为空
rem 如果mysql服务已经启动,那么就直接用mysqldump进行备份;如果没有启动,也就是server.log文件为空,那么就会先启动数据库,然后再备份

fc server.log temp.log

if ERRORLEVEL = = 0 goto backup
@echo Trying to 启动mysql服务 …………OK
net start mysql

:backup
@echo mysql服务已经启动,正在恢复...
cd ../back
set DBBACK_HOME=%cd%
cd ../service/mysql/bin
mysql -uroot -piamtop wcpmis < %DBBACK_HOME%/back_%date:~0,10%.sql
if ERRORLEVEL = = 0 echo 数据库恢复完成!

用来进行备份/恢复数据库,然后在程序中:

try {  
    
   String path = request.getRealPath("/"); 
   String file = path +"database//dbBackup.cmd";

     
   Process p = Runtime.getRuntime().exec("cmd /k start "+file);
         log.error(p.getInputStream());
         log.error(p.getErrorStream());
        
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
   }

  即可。

附:MySQL备份/恢复所有数据库
C:/temp/TopSoft/service/mysql/bin>mysqldump -uroot -p1234 --opt --all-database
s > test.sql

C:/temp/TopSoft/service/mysql/bin>mysql -uroot -p1234 <test.sql

C:/temp/TopSoft/service/mysql/bin>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值