gpt4 book ai didi

postgresql - 为什么 pg_dump 忽略 .pgpass?

转载 作者:行者123 更新时间:2023-11-29 14:25:03 25 4
gpt4 key购买 nike

我创建了一个 .pgpass 文件,它非常适合我的 psql 命令。

chris@ap2155489:~$ psql --host=my.example.com --port=12345 --username=chris -d example_db
psql (9.6.13)
SSL connection (protocol: TLSv1.2, cipher: xxx, bits: 256, compression: off)
Type "help" for help.

example_db=> \q

当我尝试运行 pg_dump 时,系统询问我的密码。

我对我的 .pgpass 文件执行了 chmod 0600

chris@ap2155489:~$ pg_dump --host=my.example.com --port=12345 --username=chris -d example_db -f dbs/test.sql --clean
Password:

我做错了什么?

两个命令都从主目录运行

更新:

~$ ll /usr/bin/pg_dump
lrwxrwxrwx 1 root root 37 May 9 2019 /usr/bin/pg_dump -> ../share/postgresql-common/pg_wrapper*
~$ ll /usr/bin/psql
lrwxrwxrwx 1 root root 37 May 9 2019 /usr/bin/psql -> ../share/postgresql-common/pg_wrapper*

最佳答案

看来您使用的 Ubuntu 系统有 postgresql-client-common安装。 pg_dumppg_wrapper 重载,但是 .pgpass应该可以工作(我在我的测试系统上试过了,没问题)。看起来你的系统管理员可能做了一些事情(可能是用 Perl?),这有使你无法使用 .pgpass 的副作用。与 pg_dump .

了解发生了什么的一种可能方法是执行 perl -e "exec env"看看 $HOME 是什么var 设置为(或者它可能被清除)。你也可以做 strace pg_dump并查看触及了哪些目录——这将生成大量输出,因此您可能难以处理。

最终,您可能需要 1) 与您的系统管理员交谈,看看是否可以修复环境,以便您可以使用 .pgpasspg_wrapper的伪 pg_dump , 或 2) 使用 pg_dump直接(通常,它位于 /usr/lib/postgresql/<version_number>/bin/pg_dump 中,但您可能应该使用 find /usr -name "pg_dump" 找到它)

关于postgresql - 为什么 pg_dump 忽略 .pgpass?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58788134/

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