首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Windows上的pg_upgrade无法写入日志文件pg_upgrade_internal.log

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

Stack Overflow用户
提问于 2016-01-07 20:09:34
回答 1查看 11K关注 0票数 8

我试图在Windows2008R2上运行pg_upgrade,但是我得到了错误:

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

我在23216734上看到了一个类似的问题,它解释了这个问题与权限有关,但是它对postgres没有帮助,因为我没有一个名为postgres的用户

升级文档也是如此,它提到了一个postgres用户:

RUNAS /USER:postgres "CMD.EXE“

但是,我没有这样的用户,并且试图以管理员的身份运行这个命令,所以我不明白为什么我没有权限。我甚至试着做

代码语言:javascript
复制
RUNAS /USER:Administrator "CMD.EXE"

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

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

更多详细信息:

我正在运行的命令是:

代码语言:javascript
复制
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的目录写入权限:

代码语言:javascript
复制
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

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

更多细节:

我看到创建内部日志文件的命令位于升级/选择.c#L 101

调用在fopen_priv(INTERNAL_LOG_FILE, "a")上定义的升级/文件c#L 243

但我不确定它想要写哪个目录。如果我知道这一点,那么我可以检查该目录的权限。

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-10 03:48:53

因此,升级/文件c#L 243 /* fopen() file with no group/other permissions */的源代码评论给了我一个想法。

我在C:\temp创建了一个临时文件夹,并向每个人授予写权限,然后从该目录运行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并没有对每个人都有写权限。

现在我不知道cannot write to log file pg_upgrade_internal.log错误了。

文档说的是pg_upgrade requires write permission in the current directory.

票数 29
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34664236

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档