升级后MySql数据库损坏了吗?

时间:2016-08-28 05:17:02

标签: mysql database ubuntu

我一直在处理这个问题一段时间了。出于某种原因,当我去运行Ubuntu升级时,MySql-server升级失败。这是在大约8/10。由于“DATADIR”链接(之前不会详细介绍),之前就发生了这种情况。我经历了试图让软件包升级并最终通过创建一个新的MySql数据库结构(在将其移动到其他地方之后)来升级软件包。一旦我这样做(涉及一些步骤),包升级就完成了。

然后,当我尝试用旧版本替换“新”数据库时,它将无法启动该服务。我发现“Mmysql”(系统)数据库文件夹刚刚完全消失。

因此,我使用了“新”数据库并将其覆盖在我的“旧”数据库文件中。这让我进来了!当然,旧用户以及系统数据库中的任何其他内容都已消失。所以我开始重建它们。

当我尝试进入某些旧数据库时出现问题。其中大约一半报告在尝试加载时表不存在。大多数情况下,它是特定数据库中的所有表,但有一些数据库中某些表“不存在”而其他表存在。

问题是表存在。我相信他们只是腐败。

所以,我真的在这里尝试,但我似乎无法弄清楚如何加载所有表。我从13号开始有一个备份,大概是在升级失败之后,但在我开始搞乱之前。我将尝试使用它,但如果有人知道如何/为什么一些表突然被破坏以及为什么其他人不是和特别是如果有人知道如何解决这个问题,那将是绝对精彩。

不幸的是,我的常规备份已经工作了几个月,我目前可以访问的最新备份是2年。从那时起数据库中有了一些变化,但作为最后的努力,我可能会尝试导入该数据并使用“mysql_upgrade”来恢复它,然后将我之后创建的任何新数据库覆盖到目录结构中并查看如果他们以这种方式进口。

感谢您提出的任何建议。

- mobrien

1 个答案:

答案 0 :(得分:1)

我认为这是由于某些文件被锁定的权限问题,当我修复了perm问题时,可访问的表已损坏。我再次恢复了相同的备份,这次它工作了。唯一缺少的文件夹是" mysql"文件夹,为此我重新创建了一个新文件夹,然后将其修补,然后为现有表创建了新的用户权限。这是有效的,但后来又遇到了另一个问题,所以我将为此开启一个新问题。这是一场噩梦,故事的寓意是:保持更好的备份并测试它们!