phpBB3 SQL数据库表不存在ERROR;无法从备份导入或删除损坏的数据库

时间:2014-07-19 08:29:25

标签: mysql database macos phpmyadmin phpbb3

我将phpBB3安装到Mac OS X服务器(10.9),从4月到几个小时前它一直运行良好。我无法确定问题的确切原因,但似乎在安装OS X Server 10.9.4更新后,它的某些数据库失去了完整性。所以我会解释发生了什么以及我尝试了什么。

当我尝试访问论坛时,收到以下错误消息。

General Error 
SQL ERROR [ mysql4 ]
Table 'phpbb3.phpbb_config' doesn't exist [1146]
An sql error occurred while fetching this page. Please contact an administrator if this problem persists.

然后我去了phpMyAdmin并点击了数据库phpbb3。它说Table缺失了。我不知道如何解决它。因此,在OS X Server更新之前,我使用TimeMachine恢复系统的先前状态。论坛没问题,但我盲目地再次尝试了OS更新,最终重复了这个问题。我再次使用了TimeMachine。这次论坛还没有恢复。同时TimeMachine备份刚满,我意识到我丢失了所有TimeMachine备份但最新的备份。这样,我就不能再回来恢复phpBB3论坛。

我放弃了使用TimeMachine备份进行恢复,并尝试通过phpMyAdmin导入最后一次备份来恢复数据库。备份是在2个月前完成的,但仍然比没有好。但是,导入也没有。

Error
SQL query:

CREATE TABLE IF NOT EXISTS `phpbb_acl_groups` (
  `group_id` mediumint(8) unsigned NOT NULL DEFAULT '0',
  `forum_id` mediumint(8) unsigned NOT NULL DEFAULT '0',
  `auth_option_id` mediumint(8) unsigned NOT NULL DEFAULT '0',
  `auth_role_id` mediumint(8) unsigned NOT NULL DEFAULT '0',
  `auth_setting` tinyint(2) NOT NULL DEFAULT '0',
  KEY `group_id` (`group_id`),
  KEY `auth_opt_id` (`auth_option_id`),
  KEY `auth_role_id` (`auth_role_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
MySQL said: Documentation

#1813 - Tablespace for table '`phpbb3`.`phpbb_acl_groups`' exists. Please DISCARD the tablespace before IMPORT.

然后我尝试删除数据库phpbb3,但我失败了。

Error 
SQL query: 
DROP DATABASE `phpbb3` MySQL said: Documentation

#1010 - Error dropping database (can't rmdir './phpbb3', errno: 66)

最后,我找到了实际数据库文件的位置(/usr/local/mysql/data/phpbb3)。我查看了文件夹里面还有一堆文件;所有这些都以.ibd扩展名结尾,包括phpbb_acl_groups.ibd(147 KB;这是按字母顺序排列的第一个)。

这是我的问题:我该怎么办?我应该手动删除/usr/local/mysql/data/phpbb3文件夹并尝试导入最新的(2个月前)数据库导出文件吗?或者,我可以以某种方式从/usr/local/mysql/data/phpbb3文件夹中的内容恢复数据库吗?

2 个答案:

答案 0 :(得分:0)

我找到了这篇文章。

mysqldump problems with restore error: 'Please DISCARD the tablespace before IMPORT'

它表示文件夹/usr/local/mysql/data/phpbb3应包含.ibd个文件和.frm个文件。但是ERROR Tablespace for table ' phpbb3 . phpbb_acl_groups ' exists.意味着.frm文件全部消失了。事实确实如此。

所以我判断文件夹/usr/local/mysql/data/phpbb3已不再使用了。现在所有TimeMachine备份都已消失,唯一的方法是依赖可用的数据库备份文件。我被迫从finder中删除该文件夹。通过phpMyAdmin创建新的空数据库,然后导入数据库备份。这次没有错误,我能够登录到phpBB3论坛。虽然我丢失了新数据,但论坛本身似乎还不错。

答案 1 :(得分:-3)

MS SQL数据库恢复工具,可以轻松地从损坏的表,触发器,视图等执行SQL Server数据库恢复。此工具兼容所有MS SQL版本2000,2005& 2008.有关详细信息和免费下载,请单击http://recoverydatatools.com/sql-recovery.html