gpt4 book ai didi

postgresql - 通过管道在两个服务器之间传输数据库

转载 作者:行者123 更新时间:2023-11-29 12:48:53 24 4
gpt4 key购买 nike

我的旧 Postgresql 服务器接受远程连接。

我正在尝试将数据库从旧服务器转移到新服务器。在以 root 身份登录的新服务器上,我执行以下命令

pg_dump -h oldserverip -U mydb -C mydb | psql -h localhost -d mydb -U mydb

然后我得到以下提示

“用户mydb的密码:密码:”

为什么要输入两次密码?

在我输入密码后,它就在那里等待,什么也没有发生。

知道问题出在哪里吗?

最佳答案

因为您使用的是 -h标志两次,你被要求输入密码两次。第二次要求您输入密码时,没有提示,因为管道 |正在掩盖它。如果您只是“相信”密码提示在那里,并且您输入了密码,事情就会继续进行。

但这可能不是您想要做的。如果两台服务器的密码相同,您可以执行 export PGPASSWORD=<password>在发出命令之前。如果您对此感到不舒服,可以使用 .pgpass文件

另一种选择是设置 PGPASSWORD对于 pg_dumppsql命令,像这样:

PGPASSWORD=<password> pg_dump -h oldserverip -U mydb -C mydb | PGPASSWORD=<otherpassword> psql -h localhost -d mydb -U mydb 

最后,如果您的 pg_hba.conf有一个 local all all trust输入,您可以简单地省略 -h localhost arg 在 psql 上一侧,系统只会提示您输入一次密码。

你选吧!

披露:我为 EnterpriseDB (EDB) 工作

关于postgresql - 通过管道在两个服务器之间传输数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58567727/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com