Mysql 数据库恢复

2014-09-17 20:58:33 +08:00
 wwttc
服务器上装了Wordpress,由于忘记mysql的root密码,就重置了mysql的root密码。结果mysql就无法开启了,终于经过折腾,可以启动mysql。但是进入mysql后,之前的数据都丢了,但是里面的数据库和表还在,但是访问表提示不存在。

/usr/local/mysql/data中还保存着每个数据库对应的文件夹,如Wordpress的文件夹中有:
db.opt wp_****.frm(等多个文件)
重新建立新的同名的表,然后用原来的文件替换,这样表中的结构都在,但是还是没有数据。
data目录下还有:
ibdata1 mysql-bin.000013 mysql-bin.000030 mysql-bin.000047
ib_logfile0 mysql-bin.000014 mysql-bin.000031 mysql-bin.000048
ib_logfile1
等文件。

请问现在需要如何恢复mysql数据库中的数据?
3243 次点击
所在节点    MySQL
10 条回复
Mac
2014-09-17 21:20:40 +08:00
.MYD 文件是数据
还有.MYI

找找这个
kmvan
2014-09-17 21:21:34 +08:00
MYI是索引吧,可要可不要的
wwttc
2014-09-17 21:50:44 +08:00
@Mac 大部分表都只剩下frm数据。
wwttc
2014-09-17 21:51:16 +08:00
@kmvan 对啊。应该怎么恢复呢?网上查了说,文件在就能恢复,可是我这里还是不行。
reAsOn
2014-09-18 09:29:29 +08:00
ibdata说明你用的是innodb的引擎吧 所以不会有 MYD MYI 这两个是 myISAM 引擎的。
有ibdata 和 mysql-bin 应该有两种恢复方式:
1. ibdata 你可以在 mysql 配置里面设置 innodb_force_recovery 参数来启动恢复
2. 用 mysqlbinlog 工具吧 mysql-bin.XXXXXX 还原成 sql 语句,然后在 mysql 里 source

具体还是查文档吧…… 恢复之前记得把这些数据先备份一遍,以防万一
wwttc
2014-09-18 12:07:14 +08:00
@reAsOn
1. 在mysql 配置里面设置 innodb_force_recovery 参数,重启后没什么效果
2. 第二种方法还没尝试
thinkmore
2014-09-18 13:20:07 +08:00
mark一下,不过我觉得主要是找到数据文件,如果数据文件存在的话那么要好点
reAsOn
2014-09-18 13:52:01 +08:00
@wwttc 那个参数有级别的 似乎有 1 2 3 4 好几个…… 得看下文档的说明
第二个方法会很麻烦……
wwttc
2014-09-18 15:33:49 +08:00
@thinkmore 数据应该都在ibdata中吧。
wwttc
2014-09-18 15:34:06 +08:00
@reAsOn 试了几个参数,都没什么反应

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/134059

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX