私の ownCloud MySQLデータが破損しているため、アップグレードに失敗しました。
エラーログを調べると、破損がowncloud.oc_filecache
テーブルに影響を与えているようです。
MySQLコンソールからcheck table owncloud.oc_filecache;
を実行しようとしましたが、MySQLがクラッシュしました。
この名前は、テーブルがキャッシュデータのみを保持し、それを再生成できる必要があることを示しています。
テーブルを最初から削除して再作成する方法はありますか?
テーブルをクリアするには、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
を手動で実行してから、アプリを再度有効にする必要がありました。これで問題はありません。