首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL系统数据库损坏

MySQL系统数据库损坏
EN

Stack Overflow用户
提问于 2019-01-16 09:00:57
回答 2查看 407关注 0票数 0

不久前,我不小心删除了我所有的MYSQL数据库。不知何故,我把它们都放回了MySQL中(我想是从一个旧的文件系统备份中)。

然而,从那时起,它就再也没有完全升级过。我的意思是,apt-get会安装新的SQL版本,但是表永远不会更新。几年来,MySQL一直运行良好,但有时需要在"apt-get升级“尝试后重启(这总是会在MySQL安装后过程中出错),以使其恢复正常。

当我运行"dpkg --configure mysql-server-5.7“时,我得到以下输出:

代码语言:javascript
复制
Setting up mysql-server-5.7 (5.7.24-0ubuntu0.16.04.1) ...
Checking if update is needed.
Checking server version.
Running queries to upgrade MySQL server.
mysql_upgrade: [ERROR] 1812: Tablespace is missing for table `mysql`.`plugin`.
mysql_upgrade failed with exit status 5
dpkg: error processing package mysql-server-5.7 (--configure):
 subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
 mysql-server-5.7

很明显,系统表"plugin“不在数据库文件中...但是我怎么才能把它找回来呢?我如何重新创建它?既然它没有它也运行得很好,我的意思是,我可以从另一台服务器上偷一个吗?有东西不是比什么都没有好吗?

我有几十个数据库,里面有大量的数据。我真的不想破坏这个..。

我真的不知道从哪里开始..。请帮帮忙。

谢谢!!

EN

回答 2

Stack Overflow用户

发布于 2019-01-21 19:29:52

所以,我让它起作用了。没有完全完成,但对于每个“分离”的表,我使用了以下命令:

代码语言:javascript
复制
alter table [error_table] import tablespace;

几个表抛出了一个错误,

代码语言:javascript
复制
Error Code: 1808. Schema mismatch (Table has ROW_TYPE_COMPACT row format, .ibd file has ROW_TYPE_DYNAMIC row format.)

我还没有解决这个问题。当我尝试更改行格式时,整个数据库崩溃。一旦我弄清楚了,我会更新这个解决方案。否则,如果任何人有任何建议,我欢迎他们!

票数 1
EN

Stack Overflow用户

发布于 2019-01-16 09:03:58

您可以尝试使用mysqlcheck实用程序。

代码语言:javascript
复制
mysqlcheck mysql plugin
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54209025

复制
相关文章

相似问题

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