不久前,我不小心删除了我所有的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很明显,系统表"plugin“不在数据库文件中...但是我怎么才能把它找回来呢?我如何重新创建它?既然它没有它也运行得很好,我的意思是,我可以从另一台服务器上偷一个吗?有东西不是比什么都没有好吗?
我有几十个数据库,里面有大量的数据。我真的不想破坏这个..。
我真的不知道从哪里开始..。请帮帮忙。
谢谢!!
发布于 2019-01-21 19:29:52
所以,我让它起作用了。没有完全完成,但对于每个“分离”的表,我使用了以下命令:
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.)我还没有解决这个问题。当我尝试更改行格式时,整个数据库崩溃。一旦我弄清楚了,我会更新这个解决方案。否则,如果任何人有任何建议,我欢迎他们!
发布于 2019-01-16 09:03:58
您可以尝试使用mysqlcheck实用程序。
mysqlcheck mysql pluginhttps://stackoverflow.com/questions/54209025
复制相似问题