【发布时间】:2011-03-20 03:31:19
【问题描述】:
我有一个用于网站的 SQLite 数据库。问题是当我尝试INSERT INTO 它时,我得到一个PDOException
SQLSTATE[HY000]: General error: 8 attempt to write a readonly database
我通过 SSH 连接到服务器并检查了权限,并且数据库具有权限
-rw-rw-r--
我对 *nix 权限不太熟悉,但我很确定这意味着
- 不是目录
- 所有者拥有读/写权限(根据
ls -l,就是我) - 组具有读/写权限
- 其他人只有读取权限
我还查看了使用sqlite3 程序的所有我知道的地方,但没有发现任何相关内容。
因为我不知道 PDO 试图打开数据库的权限是什么,所以我做到了
chmod o+w supplies.db
现在,我又收到了一个PDOException:
SQLSTATE[HY000]: General error: 14 unable to open database file
但只有当我尝试在数据库打开之后执行INSERT 查询时才会发生这种情况。
有什么想法吗?
【问题讨论】:
-
基本上 httpd (apache > php > PDO) 不是你,所以它不拥有文件,所以它没有写权限...有趣...
-
sudo chgrp www-data test.db添加权限对我有用 -
如果您尝试访问已删除的数据库,也会显示此错误
标签: sqlite permissions