Owncloudでファイルが削除できなくなった時の対処方法

VPS

ブラウザ上の操作で簡単にファイルの削除が可能、なはずのowncloudでとある時期からエラーが出て削除できないファイルが発生し始めました。

根本的な原因はよくわからないのですが、どうもファイルがデータベース上でロックされている模様。
FFFTPなどで実際のファイルを削除してみても、owncloud上にはファイル名が残り続けるという面倒な事態に。

対策としては、ロックを制御だか記憶だかしているファイルを削除してしまえば良いとのことです。

個人利用の場合はサクッと消しちゃっても問題無さそうですが、複数人で管理しているような場合はご注意を。
本来は消してはいけないものをロックするためのものだと思いますので。

手順

まず、owncloudをメンテナンスモードにします。
コマンドでもいけますが、owncloud/config内のconfig.phpの中身を書き換えるだけでもOK。

config.phpの22行目あたりにあるメンテナンスの「false」の部分を

‘maintenance’ => false,

「true」に書き換えて上書き保存。これだけです。

‘maintenance’ => true,

次にデータベースにアクセスします。

# mysql -u root -p

でログインして、

show databases;

でowncloudのデータベースを確認。
デフォルトのままなら「owncloud」というデータベースが存在すると思いますので、

use owncloud;

で選択。もしデータベース名が異なっていたら変更して下さい。

Database changed

となったら、

show tables;

でデータベースの中身を確認。この中に「oc_file_locks」が存在するはずです。
こいつを削除します。

delete from oc_file_locks;

と打って削除します。

Query OK, (ここは数字) rows affected (0.15 sec)

OKが出たら成功。データベースから出ます。

quit
Bye

最後にowncloudのメンテナンスモードを解除します。
始めの逆で、「true」を「false」にして上書き保存します。

まとめ

メンテナンスを解除したら、ブラウザでの再アクセスまで数分待ったほうが良いと思います。
その間にowncloudがファイルを読み直してくれるはず。

せっかちにアクセスすると、また違うエラーに巻き込まれるかもしれません。

一度覚えたら次からは名前を確認する必要は無いので、

「メンテナンスモードにする」

「# mysql -u root -p」

「use owncloud;」

「delete from oc_file_locks;」

「quit」でOKです。

メモリ関係の設定の問題なんでしょうかね。根本的に解決したいものです。

トップへ戻る
タイトルとURLをコピーしました