惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

GbyAI
GbyAI
爱范儿
爱范儿
Y
Y Combinator Blog
T
Tor Project blog
V
Visual Studio Blog
U
Unit 42
B
Blog RSS Feed
博客园 - 叶小钗
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
阮一峰的网络日志
阮一峰的网络日志
T
Tailwind CSS Blog
G
Google Developers Blog
I
InfoQ
Stack Overflow Blog
Stack Overflow Blog
IT之家
IT之家
Microsoft Azure Blog
Microsoft Azure Blog
T
The Blog of Author Tim Ferriss
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
The Cloudflare Blog
Google DeepMind News
Google DeepMind News
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
H
Hackread – Cybersecurity News, Data Breaches, AI and More
F
Fortinet All Blogs
人人都是产品经理
人人都是产品经理
Apple Machine Learning Research
Apple Machine Learning Research
The GitHub Blog
The GitHub Blog
Recorded Future
Recorded Future
博客园_首页
罗磊的独立博客
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
量子位
P
Proofpoint News Feed
Jina AI
Jina AI
博客园 - 【当耐特】
S
Security @ Cisco Blogs
I
Intezer
MyScale Blog
MyScale Blog
Simon Willison's Weblog
Simon Willison's Weblog
P
Privacy & Cybersecurity Law Blog
腾讯CDC
T
Tenable Blog
A
Arctic Wolf
T
Threat Research - Cisco Blogs
S
Securelist
Know Your Adversary
Know Your Adversary
Spread Privacy
Spread Privacy
C
Check Point Blog
NISL@THU
NISL@THU
Microsoft Security Blog
Microsoft Security Blog
V
Vulnerabilities – Threatpost

博客园 - 采飞扬

坑爹呀,好久没来,竟然。。。 Windows下的Memcache安装 oracle 10.2.0.4 patch的下载地址列表 oracle授权grant [转]ORA-00257: archiver error. Connect internal only, until freed 错误的处理方法 简单解决linux安装Oracle乱码问题 直接双击页面元素进行修改的HTML代码 真正完全解决MyEclipse update progress错误的方法 批量修改MSSQL表和视图及存储过程的所有者及备份等 再爆hzhost6.5虚拟主机管理系统的SQL注入漏洞3 小软件,休息一下 AJAX--'sys'未定义脚本错误 功能强大的编辑器--Vi Tar命令的详细用法 关于MySQL的1067错误解决方法 Asp.net Ajax 中的脚本错误: Sys未定义 的解决方法二 AJAX.NET 1.0 "Sys未定义" 解决方法 关于VS2005 无法使用切换到设计视图的解决方法 C#获取CPU序列号,MAC,计算机名等等
MySQL数据库的备份及恢复 (转)
采飞扬 · 2007-06-08 · via 博客园 - 采飞扬

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>