我的ownCloud由于 MySQL 数据损坏,升级失败。
检查错误日志,似乎损坏影响了owncloud.oc_filecache
表。
我尝试check table owncloud.oc_filecache;
从 MySQL 控制台运行,但 MySQL 仍然崩溃。
顾名思义,该表仅保存缓存数据,并且可以重新生成它。
有什么方法可以让我删除该表并从头开始重新创建它吗?
答案1
要清除表,请进入MySQL控制台:
mysql -uroot p
使用您的密码登录并输入:
truncate owncloud.oc_filecache;
check table owncloud.oc_filecache;
quit
(owncloud
是数据库名称,oc_
是表名前缀,两者均在安装期间指定,并且在您的系统上可能有所不同。)
这会删除表的全部内容(这对于 来说没问题oc_filecache
,因为它将由服务器重建,但不要在随机表上执行此操作,除非你知道自己在做什么。
此后,我再次尝试运行occ upgrade
并收到另一个错误,这次是针对oc_activity
表格的。
快速搜索后发现oc_activity
保存了最近的活动数据(其中的条目最终会过期),我重新运行了上述操作oc_activity
(牺牲系统中所有用户的“最近活动”条目)并重试occ upgrade
。
这次升级很顺利,没有任何错误。我必须occ maintenance:mode --off
手动运行,然后重新启用我的应用程序,现在一切看起来都很好。