MYSQL通过复制DATA文件夹内容恢复数据
在介绍此方法之前,提醒各位最好的转移数据的方法为:
在原来MYSQL服务器导出SQL文件,然后再在新的MYSQL服务器导入数据。
但是既然我们原来的服务器已经卸载了,那我们就必须采用以下的方法。
先说下MYSQL存储数据的原理:
MYSQL存储数据不是按照SQLSERVER一样(一个数据文件,一个日志文件)的。MYSQL新建一个数据库时,为该数据库在DATA文件夹下创建一个以该数据库名为名的文件夹,注意,此文件夹只是存放数据库的表结构的,并没把数据也存进去。数据在哪儿呢?在DATA文件夹下面有个ibdata1,看看这个文件的大小,你明白了吧,MYSQL把所有数据都存储在这个文件中。
恢复数据方法:
知道了上面的原理,恢复数据就应该知道怎么办了,因为我们以为MYSQL是按SQLSERVER一样存储数据的,所以我们直接把原来数据库所在的文件夹拷到DATA目录下了,由于没拷数据,所以MYSQL提示你数据不存在,这时再把ibdata1这个文件拷过去,就OK了。
操作方法:
1、把原来mysql安装目录下的data文件夹拷出来; 2、为了避免配置的麻烦,下载一个新的mysql,重新安装mysql;
3、拷出来的data文件夹里,除了mysql、test子文件夹外的子文件夹,全部都是数据库,如下图所示,europa、outman、sd1004db、shtarena全部都是一个个的数据库;
4、在新安装的mysql里创建上述数据库;我现在创建了europa数据库;
备注:如果在安装文件里找不到data文件夹,可以在mysql下使用show variables like 'datadir';语句找到data的文件夹所在位置,或者在my.ini文件 搜索datadir关键词,会发现datadir="C:/Documents and Settings/All Users/Application Data/MySQL/MySQL Server 5.5/Data/",此时先将先将MySQL服务停止,将这个目录下的data文件夹复制到目标data文件夹中,然后再my.ini中修改datadir的地址为目标data的地址,启动MySQL服务。
5、把上述europa文件夹里的文件拷到新安装的mysql目录下的europa文件夹里; 6、这时,你使用europa数据库,会显示有一张表;
可搜索这张表,又提示表不存在。
7、重启mysql服务后,还是如此;
8、这时,你忘了拷原来data文件夹下的ibdata1文件。你直接拷这个文件,会提示有文件正在使用。去服务中,关闭mysql服务,再拷那个文件到data文件夹下。再开启mysql服务。这时你再查询europa库中的m_cost表,不再报错了,之前的数据全在了。
mysql安装目录下的data文件夹,是存放mysql中的数据的。data文件里每个子文件夹,对应mysql中的每个库。子文件夹里.frm文件对应着相应的表。db文件是字符集的配置文件。有了这些文件不就代表你可以复原这些数据了,你还需要data文件夹下的ibdata1文件。
方法一:MYSQL通过复制DATA文件夹内容恢复数据
1.找到Mysql的安装目录 bin目录下 有个mysqld-nt.exe 2.然后运行cmd 进到Mysql的bin目录下 打mysqld-nt install 回车 服务就安装功功了 3.然后在运行输入 services.msc 进去把Mysql 服务重起下就可以 这样就可以让你的数据库和系统还原前一模一样
http://blog.csdn.net/haiyan2012/article/details/10978713