`

重装mysql并使用旧数据

 
阅读更多

【转载】

重装系统后 如何使用之前mysql数据

MYSQL通过复制DATA文件夹内容恢复数据

在介绍此方法之前,提醒各位最好的转移数据的方法为:

在原来MYSQL服务器导出SQL文件,然后再在新的MYSQL服务器导入数据。

 

但是既然我们原来的服务器已经卸载了,那我们就必须采用以下的方法。

 

先说下MYSQL存储数据的原理:

MYSQL存储数据不是按照SQLSERVER一样(一个数据文件,一个日志文件)的。MYSQL新建一个数据库时,为该数据库在DATA文件夹下创建一个以该数据库名为名的文件夹,注意,此文件夹只是存放数据库的表结构的,并没把数据也存进去。数据在哪儿呢?在DATA文件夹下面有个ibdata1,看看这个文件的大小,你明白了吧,MYSQL把所有数据都存储在这个文件中。

 

恢复数据方法:

知道了上面的原理,恢复数据就应该知道怎么办了,因为我们以为MYSQL是按SQLSERVER一样存储数据的,所以我们直接把原来数据库所在的文件夹拷到DATA目录下了,由于没拷数据,所以MYSQL提示你数据不存在,这时再把ibdata1这个文件拷过去,就OK了。

操作方法:

 

(在添加删除中删除Mysql,为了防止删除不干净,您可以运行以下命令:
SC delete Mysql
然后删除注册表中

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services HKEY_LOCAL_MACHINE/SYSTEM/ControlSet001/Services/Eventlog/Applications/MySQL HKEY_LOCAL_MACHINE/SYSTEM/ControlSet002/Services/Eventlog/Applications/MySQL

mysql,如果没有这项就不用删除了.)

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服务。

(对于INNODB ibdata1 所在目录如下路径:

#*** INNODB Specific options ***

innodb_data_home_dir="C:\\/MySQL Datafiles/")


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 服务重起下就可以
这样就可以让你的数据库和系统还原前一模一样

 

重装服务:

echo Creating mysql5 Service...

%1\OKIRM3\MySQL\bin\mysqld.exe --install mysql5 --defaults-file=%1\OKIRM3\MySQL\my.ini

 

 

 

当服务可以启动,从脚本恢复数据:

mysql -uroot -p --default-character-set=utf8 -f test<test.sql语句将数据库恢复!注意编码问题!

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

 

如果在特殊情况下,您需要重装Mysql并恢复数据,您应该作以下处理:

 

 

1.如果以前的数据库还要,您应该在停止Mysql后备份原来的整个mysql目录.

停止mysql的命令如下:

Net stop mysql

2.在添加删除中删除Mysql,为了防止删除不干净,您可以运行以下命令:

SC delete Mysql

然后删除注册表中 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services

mysql,如果没有这项就不用删除了.

3.将原来的mysql安装目录及Data目录删除或改名.

4.重启服务器.

5.再一步步安装Mysql.安装完。

 

特别说明:

注意,在安装这些软件的时候,请将它们安装回原来的目录中,而且版本要完全一样,例如Mysql5.0.45版本,

如果版本不一样,安装完这些软件以后,就无法用复制的方式来还原。如果原来的安装目录,存在旧的备份文件,你可以先将旧的备份文件它改成别的目录名。

 

下面看如何恢复数据:

但是,

在还原MySQL数据库之前,先要停止MySQL数据库,然后将已经备份好的MySQLDATA目录,复制到新安装DATA目录中,代替到原来的DATA目录中的文件,如果Mysql在安装时选错了编码,可以将

My.ini文件也复制回去.

最后启动数据库就可以把数据库还原成功。

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics