这是使用 stats() 的问题,或者只是在计算数据库大小时出现的问题。在 Windows 7 中使用 postgresql,本地主机。
这样做后的问题是:
"could not stat file "base/17436/119145": Permission denied"
我花了很多时间试图解决这个问题,直到我意识到真正的问题是什么。
所以我要自己回答。
这是使用 stats() 的问题,或者只是在计算数据库大小时出现的问题。在 Windows 7 中使用 postgresql,本地主机。
这样做后的问题是:
"could not stat file "base/17436/119145": Permission denied"
我花了很多时间试图解决这个问题,直到我意识到真正的问题是什么。
所以我要自己回答。
这可能有两个原因:
- 没有足够权限的数据库用户(登录角色)。
在这种情况下,请检查用户(例如“postgres”)是否具有所有控件和权限。
- 如果是本地主机,请检查您的防病毒软件,两次。
postgresql 所做的统计可能被许多防病毒软件(在我的情况下为 ESET)视为病毒移动,是误报,唯一的解决方案是找到数据库的目录(如 \PostgreSQL\9.3\data)并创建异常到您的防病毒软件中的该目录。
如您所见,第二个选项与其自身的数据库代码无关。
希望这对您有所帮助。
在我的情况下(正如@JB 建议的那样)重新启动 PostgreSQL 服务在某些情况下会起作用。
就我而言,在使用 Ctrl-C 破坏“reindexdb.exe 数据库”命令后出现此错误。我在 Windows 7 命令提示符下运行它。PostgreSQL 服务的启停解决了这个问题。