当前位置:  开发笔记 > 编程语言 > 正文

Windows上的pg_upgrade无法写入日志文件pg_upgrade_internal.log

如何解决《Windows上的pg_upgrade无法写入日志文件pg_upgrade_internal.log》经验,为你挑选了1个好方法。

我正在尝试在Windows 2008R2上运行pg_upgrade,但我收到错误:

无法写入日志文件pg_upgrade_internal.log失败,退出

我在23216734上看到了Linux的类似问题,它解释了问题是权限,但它没有帮助Windows,因为我没有用户命名postgres

同样适用于提及用户的pg_upgrade文档postgres:

RUNAS/USER:postgres"CMD.EXE"

但同样,我没有这样的用户,我试图以管理员身份运行此命令,所以我不明白为什么我没有权限.我甚至试图这样做

RUNAS /USER:Administrator "CMD.EXE"

并在新的命令提示符下运行pg_upgrade,但我得到相同的错误.

另外,我不确定哪个目录需要权限?尝试写入的过程在哪里pg_upgrade_internal.log


更多细节:

我正在运行的命令是:

C:\Apps\postgresql\pgsql-9.5.0\bin>pg_upgrade.exe --old-datadir=E:\PGSQL_data --new-datadir=E:\PGSQLData\pgsql-9.5 --old-bindir=C:\Apps\postgresql\pgsql-9.4.5.3\bin --new-bindir=C:\Apps\postgresql\pgsql-9.5.0\bin

在给出错误的同一命令提示符下,我运行了以下命令并且它们都工作,在相应的目录中创建一个空文件,因此允许对传递给pg_upgrade的目录的写权限:

C:\Apps\postgresql\pgsql-9.5.0\bin>type nul > E:\PGSQL_data\_test_write_permission.txt
C:\Apps\postgresql\pgsql-9.5.0\bin>type nul > E:\PGSQLData\pgsql-9.5\_test_write_permission.txt
C:\Apps\postgresql\pgsql-9.5.0\bin>type nul > C:\Apps\postgresql\pgsql-9.4.5.3\bin\_test_write_permission.txt
C:\Apps\postgresql\pgsql-9.5.0\bin>type nul > C:\Apps\postgresql\pgsql-9.5.0\bin\_test_write_permission.txt

所以现在我比以前更困惑......


更多细节:

我看到创建内部日志文件的命令位于/src/bin/pg_upgrade/option.c#L101

fopen_priv(INTERNAL_LOG_FILE, "a")在/src/bin/pg_upgrade/file.c#L243中定义了 哪些调用

但我不确定它正在尝试编写哪个目录.如果我知道那么我可以检查该目录的权限.

有任何想法吗?



1> isapir..:

所以/src/bin/pg_upgrade/file.c#L243上 的源代码注释/* fopen() file with no group/other permissions */给了我一个想法.

我在C:\ temp创建了一个临时文件夹,并为Everyone提供了权限,然后从该目录运行了pg_upgrade,即

C:\temp>C:\Apps\postgresql\pgsql-9.5.0\bin\pg_upgrade.exe --old-datadir=E:\PGSQL_data --new-datadir=E:\PGSQLData\pgsql-9.5 --old-bindir=C:\Apps\postgresql\pgsql-9.4.5.3\bin --new-bindir=C:\Apps\postgresql\pgsql-9.5.0\bin

而在我尝试从工作目录运行pg_upgrade之前,该目录%PGSQL%\bin没有对Everyone的写权限.

现在我不再收到cannot write to log file pg_upgrade_internal.log错误了.

该文档居然说pg_upgrade requires write permission in the current directory.

推荐阅读
pan2502851807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有