怎样恢复data目录中的mysql数据库?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样恢复data目录中的mysql数据库?相关的知识,希望对你有一定的参考价值。

服务器上的mysql 5.0 被他人意外重新安装了,但是我哪个数据库kidd没有备份,进入查看之后,看到data哪个目录还在,并且data下有个kidd目录,我把这个data\kidd\目录赶紧copy出来,请问,我用这个目录还能恢复吗? 连同数据库表结构和数据一起都能恢复吗?怎样恢复?
看了一下各位的回答,感觉各位说的那种情况是仅仅恢复数据,但是我说的是我连数据库表结构的备份都没有,怎么办?也就是说我现在连建库都建不了,不知道能不能从这个目录中搞出来.

刚刚搞定了,其实很简单,就是重新create了一个同名的数据库,然后把这个文件夹覆盖过去,我当时试了一下不行,后来刚好有个操作系统的更新需要重新启动服务器,结果重新启动之后就好了,原来还要重新启动,这个没想到.意外发现的,本来有点沮丧,结果吃饭之后回来看到好了.哈哈

MySQL数据恢复过程
从另一台机上把MySQL数据库的mysql文件夹拷贝到本地机上,目的是恢复本地机对数据的访问和操作。经过如下几种情况的操作。

1. 在本地重装MySQL(安装目录D:\Program Files\MySQL\MySQL Server 5.0),直接把mysql文件夹拷贝至D:\Program Files\MySQL\MySQL Server 5.0\。结果,失败:数据库连接错误。

2. 卸载后重装MySQL,将D:\Program Files\MySQL\MySQL Server 5.0\下的数据备份,只把mysql\data文件夹全部内容拷贝到D:\Program Files\MySQL\MySQL Server 5.0\data下。结果,失败:数据库连接错误。将备份的数据还完覆盖。结果,失败,还是连接不上数据库。

3. 卸载后重装MySQL,将mysql\data文件夹里的cf1,last文件夹(这两个是原来MySQL里的数据库)拷贝进D:\Program Files\MySQL\MySQL Server 5.0\data。连接成功,在Navicat for MySQL里看到数据库cf1和last,但是不能访问,因为数据全为零。明白了原来data里以数据库命名的文件存储的是数据库的表结构,不是元数据。下一步,把data文件夹里的ibdata1文件(3.4G大,明显存储了元数据)拷贝到D:\Program Files\MySQL\MySQL Server 5.0\data里,代替原来的ibdata1文件。重启电脑,打开Navicat for MySQL,连接成功,数据可以访问操作。

至此,操作终于成功。其实当初在那台机上把数据导出来,而不是现在直接把文件夹mysql复制过来会更容易恢复。但那台机已经重装了系统,也就是说MySQL失效了。
参考技术A 如果是windows版本的话,如下。。。
把所有的mysql卸载
然后把mysql文件夹弄走(卸载不会清掉它,需手动,一般在C:\ProgramData下)
重新安装mysql(我用的是mysql-installer-community-5.7.13.0程序包)
如果数据库启动了先关闭它(因为版本,关闭是(net stop mysql57--在cmd中);启动是(net start mysql57--在cmd中))
然后把以前的数据库文件(自己需要的)(在Data文件夹下的,数据库名即文件夹名)复制到,新的数据库Data文件夹下(那些自带的数据库别动),
把新的Data下的那五个配置文件替换为以前老的文件(就是这五个文件auto.cnf,ib_buffer_pool,ib_logfile0,ib_logfile1,ibdata1)
重新启动数据库即可。

祝你好运。。。
参考技术B 能。你按开始、程序、一键恢复精灵就可以恢复了。。 参考技术C 参考这篇文章

http://blog.163.com/kwzong@126/blog/static/4719260520086244915955/

大概意思就是 把数据库 kidd 和元数据 复制过去就ok了本回答被提问者采纳
参考技术D 可以查下具体恢复mysql数据库文件的具体过程,
呵呵,希望能有帮助,^_^

mysql数据恢复

重新安装MySQL将数据库初始化后存储数据库目录/usr/local/mysql/data/ib_logfile0 和ib_logfile1文件备份到ibfile目录下

[root@hudi1 data]# mkdir ibfile

mysql数据恢复_数据库

[root@hudi1 data]# cp -r ry@002dcloud/ /usr/local/mysql/data/

[root@hudi1 data]# cp -r ry@002dconfig /usr/local/mysql/data/

[root@hudi1 data]# cp -r scjd/ /usr/local/mysql/data/

[root@hudi1 data]# cp -r sxctc@002dactiviti/ /usr/local/mysql/data/

[root@hudi1 data]# cp -r sxctc@002dcatalog/ /usr/local/mysql/data/

[root@hudi1 data]# cp -r sxctc@002dcenter/ /usr/local/mysql/data/

[root@hudi1 data]# cp -r sxctc@002dconductor/ /usr/local/mysql/data/

[root@hudi1 data]# cp -r sxctc@002dcs/ /usr/local/mysql/data/

[root@hudi1 data]# cp -r sxctc@002dfront/ /usr/local/mysql/data/

[root@hudi1 data]# cp -r sxctc@002dportal/ /usr/local/mysql/data/

[root@hudi1 data]# cp -r sxctc_log/ /usr/local/mysql/data/

[root@hudi1 data]# cp -r sxctc_test/ /usr/local/mysql/data/

mysql数据恢复_数据库_02

重启数据库

可以navicat连接到数据库但是,访问数据库时报异常,无法查询数据

lost connection to mysql during query

mysql数据恢复_mysql_03

通过查找hudi1.err日志发现是数据库文件只有只读权限,将数据库文件

mysql数据恢复_2d_04

问题解决:

修改文件权限所属

[root@hudi1 data]# chown -R mysql:mysql /usr/local/mysql

mysql数据恢复_数据库_05

查看文件所属

mysql数据恢复_2d_06

netstat -tlnp | grep mysqld

mysql数据恢复_数据库_07


以上是关于怎样恢复data目录中的mysql数据库?的主要内容,如果未能解决你的问题,请参考以下文章

xtrabackup 备份和恢复

mysql数据文件损坏造成的mysql服务无法启动怎样解决

MySQL数据库的备份与恢复

不小心删掉了mysql数据库怎么办

Mysql运维管理-MySQL备份与恢复实战案例及生产方案17

mysql数据恢复