首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >pg_dump挂在Git Bash中,但在Windows命令行中工作

pg_dump挂在Git Bash中,但在Windows命令行中工作
EN

Database Administration用户
提问于 2021-11-03 20:40:53
回答 2查看 1.2K关注 0票数 2

我试图从Git Bash环境中备份数据库,但是可执行文件没有输出任何内容。

如果我使用-f标志指定文件名,则会创建一个空白文件,因此该可执行文件显然会运行,但它不会执行任何操作--没有输出或活动。使用-v标志也不会使它产生任何输出。

但是,如果我运行pg_dump --help,就会得到输出。

当我从Windows命令行执行同样的操作时,系统会要求我提供一个密码,转储程序也会进行得很好。

pg_dump不工作的Git环境有什么不同?有什么解决办法吗?如果可能的话,我更愿意远离Windows命令行。

EN

回答 2

Database Administration用户

回答已采纳

发布于 2021-11-04 10:57:00

不使用pg_dump ...,而是使用winpty pg_dump ...

Git的不同之处在于,它是一个运行在mintty窗口中的POSIX程序(除非您启用了某个可选的、仍未准备生产的特性),它不支持Windows。在尝试使用该API读取密码的程序中,最常见的情况是在用户键入密码时不打印密码。

您的pg_dump版本可能是为了使用Windows来编译的,这样它就可以读取密码而不回显它。(如果使用POSIX API编译,则在Windows终端中运行时,不显示密码的尝试将失败。)如果您在带有minttywinpty中运行它,您可能会看到密码提示,并能够键入密码。

winpty是一个启动隐藏的Windows窗口的shim,运行连接到I/O的程序,然后轮询该控制台的屏幕,以获得输出发送回您的MinGW终端。

票数 1
EN

Database Administration用户

发布于 2021-11-03 21:11:09

在Windows命令行中也这样做,我被要求输入密码,转储程序进行得很好

我怀疑在Git Bash环境中,它也在等待密码,但是您没有看到它的提示(它正在提示的stdout/stderr是否可以被重定向到您的终端以外的其他地方?)。

尝试输入密码,就像被提示了一样,看看会发生什么。另外,尝试通过其他方法(就像这里覆盖的)提供密码。在这两种情况下,这可能不是一个pg_dump特定的问题,而是一个bash/bashgit/windows/其他需要类似输入的工具,您将更有可能在其他地方得到有用的答案。

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

https://dba.stackexchange.com/questions/302089

复制
相关文章

相似问题

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