您现在的位置: 网页吧 >> 技术教程 >> 数据库 >> MySQL >> 正文
  • 站内搜索:

系统崩溃后MySQL数据库恢复手记

[作者:佚名 | 点击数: | 时间:2011-6-24]【

创E的服务器在前段时间因为硬件问题彻底崩溃了,得到网络中心的支持将服务器迁移到学校刚刚搭建起来的虚拟化平台上,系统和asp+access数据库的网站因为保存在非系统盘所以在第一时间恢复,但是因为MySQL数据库是安装在系统里面,所以数据就一直没有空去弄它。今天花了一天时间,重装了N次MySQL Server终于成功将数据库恢复,但是权限问题尚未解决。先记下数据库恢复过程,权限问题稍候再说。

一开始的做法是在原有系统中将原先保存Data的ibdata1覆盖到新装的MySQL Data目录里面,但是文件虽然变大,但是数据库并没有回来。参考了文章很多资料后,发现ibdata1只是保存了数据库中是数据,但是数据库的表结构是保存在另外的地方。

重新接上原来的硬盘,在C:\Documents and Settings\All Users\Application Data\MySQL\MySQL Server 5.1\data里面终于找到了原来的数据库结构和表结构文件,还是使用覆盖数据库文件的方式,先停用MySQL,再覆盖,但是之后就再也启动不了MySQL服务了。

然后尝试重装的时候将数据库的保存目录指定到拷贝出来的Date目录,安装后提示原来有数据文件,但是安装最后的配置就在一直没有成功,换了几次MySQL的版本也不行。

最后采取安装后选择性覆盖,将后期自己建立的表文件和ibdata1覆盖后启动成功,终于将数据库文件恢复,但是权限部分没有了。只能自己重建。比较麻烦···

最后介绍一下MySQL的备份与恢复

MySql的备份可用命令mysqldump ,使用方法很简单,

Copy to Clipboard引用的内容:
mysqldump -u 用户名 -p (密码) -h 主机名 数据库名 >路径/备份名.bak;
同时也可以是用mysqldump到处数据结构(tablename.sql)和数据(tablename.txt)

Copy to Clipboard引用的内容:
mysqldump -u 用户名 -p (密码) -h 主机名 数据库名 tablename1 tablename2 > back.sql

mysqldump -u 用户名 -p (密码) -h 主机名 数据库名 --tab 路径 --opt 数据库名.
例如:

Copy to Clipboard引用的内容:
mysqldump -u pivot -p pivot news > c:\news.sql
那么还原可以mysql命令:

Copy to Clipboard引用的内容:
mysql -u 用户名 -p (密码) -h 主机名 --one-database 还原数据库名 < 路径/备份名.bak,--one-database是指定要恢复的数据库.
例如:

Copy to Clipboard引用的内容:
mysql -u pivot -p pivot news < c:\news.sql
(括号表示密码不先输入,在连接时在Enter password;若密码为空可缺省-p参数)

系统崩溃后MySQL数据库恢复手记网友评论
发表评论
  • 姓 名 :* (必填项)
  • E-mail: QQ:
  • 评 分 : 1分 2分 3分 4分 5分
  • 评论内容:
·请遵守《互联网电子公告服务管理规定》及中华人民共和国其他各项有关法律法规。
·用户发表意见仅代表其个人意见,并且承担一切因发表内容引起的纠纷和责任。
·本站管理人员有权在不通知用户的情况下删除不符合规定的评论信息或留做证据。
·请客观的评价您所看到的资讯,提倡就事论事,杜绝漫骂和人身攻击等不文明行为。
网页吧·中国站长第一门户