MySQL系统数据库损坏

标签 mysql

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

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

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

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

很明显系统表“插件”不在数据库文件中......但是我如何取回它?我该如何重新创建它?既然没有它它就运行得很好,我的意思是,我可以从另一台服务器上偷一个吗?有总比没有好吗?

我有数十个包含大量数据的数据库。我真的不想危及这一点......

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

谢谢!!

最佳答案

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

alter table [error_table] import tablespace;

几个表抛出了一个错误

Error Code: 1808. Schema mismatch (Table has ROW_TYPE_COMPACT row format, .ibd file has ROW_TYPE_DYNAMIC row format.)

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

关于MySQL系统数据库损坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54209025/

相关文章:

mysql - Mac 上的 Rails - rake db :create error

如果未找到 MySQL 更新行 insert -Preference for update first

php - 在带有组标题的表中显示 mysql 数据

java - 使用 Java 访问在线数据库

php - 在存储到 mysql 数据库之前压缩文本

php - Yii:STAT 与条件的关系

mysql - 如何一次编辑时间戳列中的所有值?

javascript - Sequelize中如何进行算术运算?

mysql - 如何加快从不同主机上的 2 个服务器检索数据

mysql - 获得最快的 MySql 查询