mysql备份和从ib_logfile恢复失败

时间:2009-09-29 16:07:14

标签: mysql restore

情况如下:

在计算机被黑客入侵后,我们急于将所有数据备份到其他计算机。

因此,mysql数据库不会作为sql语句备份出来。

我们所做的是将C盘中的所有物理文件/文件夹备份到新计算机。

例如:

C:\ Program Files \ MySQL \ MySQL Server 4.1 \ data

在这种情况下,mysql的所有数据都在不可读的文件中。 内部数据文件夹由ib_logfile0,ib_logfile1等文件组成,但不包含ib_data1 所有数据库的表结构格式都在每个相应的文件夹中。 (某些文件夹有.frm,.opt)(其他一些文件夹有.frm,.myd,.myi)

如何在新计算机中检索数据库中的数据?

我尝试在新计算机上安装相同的mysql版本(4.1),然后将数据文件夹中的所有备份文件替换为新计算机中的这个mysql。然后重启mysql服务。

当我重新启动时,它失败:无法在本地计算机上启动mysql服务。错误1067:进程意外终止。

错误日志显示:

InnoDB: The first specified data file .\ibdata1 did not exist:
InnoDB: a new database to be created!
090930 10:24:49  InnoDB: Setting file .\ibdata1 size to 10 MB
InnoDB: Database physically writes the file full: wait...
InnoDB: Error: log file .\ib_logfile0 is of different size 0 87031808 bytes
InnoDB: than specified in the .cnf file 0 25165824 bytes!
090930 10:24:49 [ERROR] Can't init databases
090930 10:24:49 [ERROR] Aborting

090930 10:24:49 [Note] C:\Program Files\MySQL\MySQL Server 4.1\bin\mysqld-nt: Shutdown complete

3 个答案:

答案 0 :(得分:0)

你需要查看数据文件夹中的mysql.err日志,看看有什么不对。

首次安装时,mysql服务是否正常启动?

看起来你在Windows上,所以我猜你移动文件而不是复制它们。当您在Windows中移动文件时,它们会保留其权限。复制时,它们会从文件夹继承权限。所以请检查以确保他们拥有正确的权限。

答案 1 :(得分:0)

您的错误日志表明您的innodb配置与您的innodb文件不匹配。你需要查看旧服务器上的配置文件,找出mysql配置存储innodb文件的位置。然后去找那些文件并将它们复制到新服务器。您还应该完全从旧服务器复制innodb配置设置,并将它们应用到新服务器。

答案 2 :(得分:0)

听起来my.ini中的innodb_log_file_size与以前不一样。

查看数据文件夹中的ib_logfile0文件大小,如果它是102,400KB,它应该是: innodb_log_file_size = 100M

你的看起来应该是: innodb_log_file_size = 83M (现在设定为24M)

当有人使用安装程序“修复”mysql安装时,我遇到了这个问题。

玩得开心。