首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我不得不从备份中恢复InnoDB表,但是mysql正在崩溃。

我不得不从备份中恢复InnoDB表,但是mysql正在崩溃。
EN

Server Fault用户
提问于 2011-10-18 22:27:25
回答 2查看 976关注 0票数 0

我刚刚从备份中恢复了我的InnoDB表(复制了ibdata1、ib_logfile1、ib_logfile0)

但是,当我现在启动mysql并尝试使用InnoDB表访问我的站点时,*我会得到以下错误

代码语言:javascript
复制
Got error -1 from storage engine
MySQL server has gone away

在我的/var/log/syslog中,我有很多消息,如

代码语言:javascript
复制
Oct 19 00:21:31 vm645 mysqld: 111019  0:21:31  InnoDB: Error: page 113644 log sequence number 12 1381339343
Oct 19 00:21:31 vm645 mysqld: InnoDB: is in the future! Current system log sequence number 12 1375387790.
Oct 19 00:21:31 vm645 mysqld: InnoDB: Your database may be corrupt or you may have copied the InnoDB
Oct 19 00:21:31 vm645 mysqld: InnoDB: tablespace but not the InnoDB log files. See
Oct 19 00:21:31 vm645 mysqld: InnoDB: http://dev.mysql.com/doc/refman/5.1/en/forcing-recovery.html
Oct 19 00:21:31 vm645 mysqld: InnoDB: for more information.

最后,我明白了

代码语言:javascript
复制
Oct 19 00:21:31 vm645 mysqld: InnoDB: Apply batch completed
Oct 19 00:21:31 vm645 mysqld: 111019  0:21:31  InnoDB: Started; log sequence number 12 1375387790
Oct 19 00:21:31 vm645 mysqld: InnoDB: !!! innodb_force_recovery is set to 4 !!!
Oct 19 00:21:31 vm645 mysqld: 111019  0:21:31 [Note] Event Scheduler: Loaded 0 events
Oct 19 00:21:31 vm645 mysqld: 111019  0:21:31 [Note] /usr/sbin/mysqld: ready for connections.
Oct 19 00:21:31 vm645 mysqld: Version: '5.1.49-3-log'  socket: '/var/run/mysqld/mysqld.sock'  port: 3306  (Debian)

好吧,我想说它已经准备好连接了。然而,我得到了同样的错误,在这个问题的开头说。它看起来已经启动了,但是每次我尝试在InnoDB表上运行查询时,它都会掉下来一秒钟。

有什么想法?

编辑:

有时,当我重新启动mysql时,它会显示在控制台中

代码语言:javascript
复制
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (111)
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (111)
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)                                                            - ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
......

我得重新开始

EDIT2:

出于某种原因,现在它只是

代码语言:javascript
复制
Unknown table engine 'InnoDB'
EN

回答 2

Server Fault用户

回答已采纳

发布于 2011-10-19 16:19:15

我已经备份了所有数据库(mysqldump -p db_name > db_name.sql),完全重新安装了mysql,并将我的数据库导入回了(mysql -p db_name < db_name.sql)。现在起作用了。

附带注意:永远不要删除/var/lib/mysql/ibdata1

票数 0
EN

Server Fault用户

发布于 2013-10-28 22:44:54

你是怎么做后援的?复制mysql目录是一个非常糟糕的主意,而且不能很好地工作。使用mysqldump,或innobackupex。

对于这个问题,它可以很好地解决您的问题,您可以将ib_logfile0-1移到某个地方并启动mysql服务器。在此之后,我将开始检查我的数据是否在数据库中被破坏。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/322740

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档