我正在使用 mod mono 运行 apache,而我的 asp.net 应用程序使用 mono sqlite 作为其数据库。当我刷新页面两次时,我得到了 DB is locked 错误。它所在的文件夹是 chmod 777。webapp 正在创建 sqlite.db 和 sqlite.db-journal,但它似乎无法删除日志。当我加载一次页面时它也有问题。看来确实是权限问题。
我很困惑。我需要什么权限来设置这些?我尝试使用 777 预先创建文件,但没有成功。
-edit- 我没有找到解决方案,但我认为自从我计划将 mysql 用于我的 webapp 以来,我是多么愚蠢。所以我只是移植了代码,我不再有问题。
最佳答案
创建/删除文件时,目录权限很重要。
所以,如果你真的想要那个,你必须将包含目录的权限设置为 777。
示例:
$ ls -la
total 21
dr-xr-xr-x 2 me me 1024 May 22 19:19 . #no write permissions to directory
drwxrwxrwt 21 root root 19456 May 22 19:19 ..
-rwxrwxrwx 1 me me 0 May 22 19:19 abc #all permissions to file abc
$ rm abc
rm: cannot remove `abc': Permission denied #abc has 777, but deleting doesn't work
$ chmod 777 . #change directoy's permissions
$ rm abc #now removing works
$ ls #file abc is gone
原因是,当您删除一个文件时,您实际上修改的是目录,而不是文件本身。
想想一个硬链接(hard link):当你删除一个指向它的硬链接(hard link)时,文件本身不会改变,但目录会改变。
关于linux - 刷新页面时出现数据库被锁定的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2889013/