在介绍此方法之前,提醒各位最好的转移数据的方法为:
在原来MYSQL服务器导出SQL文件,然后再在新的MYSQL服务器导入数据。
但是既然我们原来的服务器已经卸载了,那我们就必须采用以下的方法。
先说下MYSQL存储数据的原理:
MYSQL存储数据不是按照SQLSERVER一样(一个数据文件,一个日志文件)的。MYSQL新建一个数据库时,为该数据库在DATA文件夹下创建一个以该数据库名为名的文件夹,注意,此文件夹只是存放数据库的表结构的,并没把数据也存进去。数据在哪儿呢?在DATA文件夹下面有个ibdata1,看看这个文件的大小,你明白了吧,MYSQL把所有数据都存储在这个文件中。
恢复数据方法:
知道了上面的原理,恢复数据就应该知道怎么办了,因为我们以为MYSQL是按SQLSERVER一样存储数据的,所以我们直接把原来数据库所在的文件夹拷到DATA目录下了,由于没拷数据,所以MYSQL提示你数据不存在,这时再把ibdata1这个文件拷过去,就OK了。
3、拷出来的data文件夹里,除了mysql、test子文件夹外的子文件夹,全部都是数据库,如下图所示,europa、outman、sd1004db、shtarena全部都是一个个的数据库;
备注:如果在安装文件里找不到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服务。
8、这时,你忘了拷原来data文件夹下的ibdata1文件。你直接拷这个文件,会提示有文件正在使用。去服务中,关闭mysql服务,再拷那个文件到data文件夹下。再开启mysql服务。这时你再查询europa库中的m_cost表,不再报错了,之前的数据全在了。
mysql安装目录下的data文件夹,是存放mysql中的数据的。data文件里每个子文件夹,对应mysql中的每个库。子文件夹里.frm文件对应着相应的表。db文件是字符集的配置文件。有了这些文件不就代表你可以复原这些数据了,你还需要data文件夹下的ibdata1文件。