owncloud/nextcloud解决文件锁问题

owncloud/nextcloud解决文件锁问题

如果你遇到owncloud/nextcloud文件突然无法删除,也无法修改覆盖等操作时,日志提示“****file is locked.”时,则文件被锁定了。owncloud文件锁存在数据库表oc_file_locks里面,但是对于许多新手安装owncloud/nextcloud只是在mariadb/mysql数据库里创建了一个owncloud/nextcloud库名,一般也不会导入数据进去。所以,本文只针对此类安装法的文件锁问题。关联数据库的百度能搜出一大把解决方法,我这里就不说了。本人也是查了好多资料,参照mysql的办法,使用sqlite修改数据库,解决办法:
1、首先,进入维护模式

sudo -u nginx php /usr/share/nginx/html/nextcloud/occ maintenance:mode --on

或者进入ownCloud目录:编辑config/config.php并更改此行:
‘maintenance’ => true,
2、找到你的数据存储目录data,一般owncloud/nextcloud的数据都存放到data/owncloud.db文件中,使用sqlite打开

sqlite3 /var/nextcloud/data/owncloud.db
#设置显示格式
sqlite> .header on
sqlite> .mode column
sqlite> .explain on
sqlite> .timer on
#查看oc_file_locks表内容
sqlite> select * from oc_file_locks;
#lock值为-1就是锁定文件,我们需要将-1改为0或1都可以。
id    lock           key   ttl 
----  -------------  ----  ----
      -1              files/95bc2d7c14333fd9aed48cbf53b83fe6  1571320752
      0              files/a5ad3d8d88537a8fb425d17f6e0efced  1571320752
      -1              files/cdbd92d07342ff7a7d80baf3d02353a0  1571364776
      0              files/f1c246fb445eb0a010a462de9de1db70  1571364776
      0              files/02f48903b63360a0878de74604c5ac15  1571363372
      0              files/900ee66d93b73cf5da1f2508abd5f44c  1571364793
      -1              files/36ef27185d8167f9e873e66c31172e93  1571364793
CPU Time: user 0.004323 sys 0.001131
#批量修改数据
update oc_file_locks set lock="0" where lock="-1";
#退出
sqlite> .exit

3、退出维护模式

sudo -u nginx php /usr/share/nginx/html/nextcloud/occ maintenance:mode --off

4、重启服务

systemctl restart php-fpm
systemctl restart nginx
#有时直接重启不生效,可以先停止再启动服务
systemctl stop php-fpm
systemctl stop nginx
systemctl start php-fpm
systemctl start nginx

重新进入owncloud/nextcloud则此时可以删除修改文件了。

你可能感兴趣的:(owncloud,nextcloud,sqlite,数据库)