Linux 为什么我不能在几个小时前访问sqlite数据库?

Linux 为什么我不能在几个小时前访问sqlite数据库?,linux,sqlite,mono,nginx,xsp,Linux,Sqlite,Mono,Nginx,Xsp,我得到下面的错误。我知道事实上这是一个谎言。我正在asp.net网站上使用mono.sqlite。当我将文件复制到预期的文件夹中时,它以前是工作的。然后我删除了它并创建了一个链接。默认情况下,它是一个硬链接,我签出了硬链接的权限。是644 但后来我决定重新启动mono,它就成功了。几个小时后,我检查了一下,我再次收到了信息。我重启了mono,它没用。我停止了另一个访问该数据库的应用程序,重新启动了mono,但它仍然无法工作 考虑到这个非常硬的链接正在工作,为什么我现在会出现这个错误 Server

我得到下面的错误。我知道事实上这是一个谎言。我正在asp.net网站上使用mono.sqlite。当我将文件复制到预期的文件夹中时,它以前是工作的。然后我删除了它并创建了一个链接。默认情况下,它是一个硬链接,我签出了硬链接的权限。是644

但后来我决定重新启动mono,它就成功了。几个小时后,我检查了一下,我再次收到了信息。我重启了mono,它没用。我停止了另一个访问该数据库的应用程序,重新启动了mono,但它仍然无法工作

考虑到这个非常硬的链接正在工作,为什么我现在会出现这个错误

Server Error in '/' Application
SQLite error
no such table: Images

Description: HTTP 500. Error processing request.

Stack Trace:

Mono.Data.Sqlite.SqliteException: SQLite error
no such table: Images
  at Mono.Data.Sqlite.SQLite3.Prepare (Mono.Data.Sqlite.SqliteConnection cnn, System.String strSql, Mono.Data.Sqlite.SqliteStatement previous, UInt32 timeoutMS, System.String& strRemain) [0x0022f] in /tmp/buildd/mono-2.6.7/mcs/class/Mono.Data.Sqlite/Mono.Data.Sqlite_2.0/SQLite3.cs:333 
  at Mono.Data.Sqlite.SqliteCommand.BuildNextCommand () [0x00019] in /tmp/buildd/mono-2.6.7/mcs/class/Mono.Data.Sqlite/Mono.Data.Sqlite_2.0/SQLiteCommand.cs:230 

Version information: Mono Runtime Version: 2.6.7 (Debian 2.6.7-5); ASP.NET Version: 2.0.50727.1433 

额外注意:我正在将debian和nginx与fastcgi一起使用

sqlite命令行客户机对您的数据库有何评论?我有点担心硬链接,因为SQLite在同一目录下为WAL、locks等创建临时文件。@derobert:真的吗?我以为sqlite在同一个目录中只有一个日志。它实际上使用锁吗?服务器只进行读取,而另一个服务器则主要进行写入以查找密钥。不幸的是,apt get使用的版本很旧,无法读取数据库。但是我在windows上使用相同的代码已经有几个月了,没有错误。这仅仅是几个小时,请尝试sqlite3包和二进制文件。至于锁,是的,它使用它们,在某种程度上取决于您运行的模式。例如,WAL模式要求最多一次并发写入,这意味着一个锁。硬链接让我担心,如果它在两个不同的目录中获得两个不同的日志会发生什么?>从图像中选择count*;显示结果。好的,我想我应该弄清楚如何不使用硬线。好吧,谢天谢地,这意味着你的数据库没有被破坏。您可以尝试符号链接ln-s…,但我不确定SQLite是否知道如何专门处理它们。或者把文件放在一个地方。不知道为什么它需要两个名字。