我在通过SQLite程序访问Perl时遇到了这个问题。我可以使用INSERT和DELETE命令,但不能使用VACUUM,它会引发错误:"disk I/O error“。
如果我以root身份运行程序,我没有任何问题,所以我猜一定是权限问题。我检查了进程中涉及的每个文件的权限,应该没有问题。我真的不明白。VACUUM命令是否在DB目录之外执行I/O操作?
提前感谢您的帮助。诚挚的问候,
my $dbh = DBI->connect("dbi:SQLite:someDB.db", undef, undef, {RaiseError => 1, AutoCommit => 1});
my $sth = $dbh->prepare("VACUUM;");
$sth->execute;发布于 2011-11-28 23:28:18
如果您想查看在VACUUM期间执行的I/O操作,可以使用strace。它将列出SQLite执行的所有系统调用,包括磁盘IO。
strace sqlite3 someDB.db 'VACUUM;'https://stackoverflow.com/questions/8298053
复制相似问题