错误:新创建的数据库上的磁盘I / O错误

时间:2015-03-24 23:27:01

标签: sqlite

我正在尝试使用sqlite创建一个新数据库,但我一直收到以下错误:

sqlite3 new.db
SQLite version 3.3.6
Enter ".help" for instructions
sqlite> begin immediate;
SQL error: database is locked

我尝试从源代码构建最新的sqlite,我收到以下错误:

sqlite3 new.db
SQLite version 3.8.8.3 2015-02-25 13:29:11
Enter ".help" for usage hints.
Error: disk I/O error

我有可用的磁盘空间,我尝试按disk I/O error with SQLite中的建议创建数据库文件的副本,但没有任何运气。

类似问题的所有解决方案都指向数据库被另一个进程锁定的问题。但在这种情况下不应该发生这种情况。

它看起来像是一个环境问题,但我对这个问题的根源一无所知。

有没有人遇到过类似的东西?

编辑: 此错误是由文件系统引起的。有问题的文件系统是旧版本,显然它不支持群集锁定。关于nfs上的sqlite数据库还有许多其他SO问题。

2 个答案:

答案 0 :(得分:1)

如果启用了SELinux或AppArmor,则根据分发情况,您可能会收到此错误。

答案 1 :(得分:0)

如果数据库文件是可写的,但是日记文件(附加了 -journal 的同名文件)是不可写的,也会发生这种情况。如果数据库文件不可写,那么您将尝试写入只读数据库。