sqlite的一个Unable to Open database file的坑爹错误
今天,被sqlite的一个机制给坑了。本人用C语言写的cgi程序去访问sqlite数据库,读取没有问题,但是插入新纪录和更新数据就不行,在服务器上直接对数据库进行增删查改则没有任何问题。但浏览器上访问并且对数据库有写的操作时,则报错误:
unable to open database file
本人在网上查找了很久,没有找到直接相关的答案。偶在一个百度问答上看到sqlite库在对数据库进行操作时(本人估计是写操作),会在数据库的当前文件夹下创建一个临时文件,当操作结束时,该临时文件将被删除。 而远程用户一般不具备有对临时文件足够的权限 所以会造成 无法打开、写或者删除临时文件。解决的方法就是递归地(加-R)将数据库所在文件夹设置为任何用户都有可读可写可删的权限。假如sqlite数据库路径为/opt/lampp/cgi-bin/, 则:
chmod -R 777 /opt/lampp/cgi-bin/