postgres pg_dump: fe_sendauth: no password supplied问题处理

2023-12-13 05:27:58

1、pg_dump: fe_sendauth: no password supplied问题处理(root 用户)

第一次碰到这个问题是因为是在root用户下执行定时任务时抛出的

[root@localhost ~]# crontab -l
20 1 * * * sh /home/postgres/shell/flexflowdbbackupParm.sh edu_compass_xm 10 >/dev/null 2>&1
30 1 * * * sh /home/postgres/shell/flexflowdbbackupParm.sh edu_compass_pt_cs 10 >/dev/null 2>&1
40 1 * * * sh /home/postgres/shell/flexflowdbbackupParm.sh edu_jbpm_pt_cs 10 >/dev/null 2>&1
50 1 * * * sh /home/postgres/shell/flexflowdbbackupParm.sh edu_jbpm_xm 10 >/dev/null 2>&1
10 2 * * * sh /home/postgres/shell/flexflowdbbackupParm.sh edu_bigdata_pt_cs 10 >/dev/null 2>&1
20 2 * * * sh /home/postgres/shell/flexflowdbbackupParm.sh edu_bigdata_xm 10 >/dev/null 2>&1
[root@localhost ~]# 

2、解决方法

2.1、创建 .pgpass文件

用root用户在/home/root目录下创建.pgpass文件,并把如下内容放在文件中

hostname : 端口:数据库 :用户名:密码
127.0.0.1:5432:database_a:postgres:wwwwwwwwwwwwwww
127.0.0.1:5432:database_b:postgres:wwwwwwwwwwwwwww
127.0.0.1:5432:database_c:postgres:wwwwwwwwwwwwwww
127.0.0.1:5432:database_d:postgres:wwwwwwwwwwwwwww
127.0.0.1:5432:database_e:postgres:wwwwwwwwwwwwwww
127.0.0.1:5432:database_f:postgres:wwwwwwwwwwwwwww

在这里插入图片描述

2.2、chmod 600 ~/.pgpass

set the file’s mode to 0600. Otherwise, it will be ignored.

chmod 600 ~/.pgpass

3、额外情况

在另一个场景中,我又碰到了上面这个问题,而且我按上面的方式设置了之后,还是不行,后面找到了问题的原因:
在这里插入图片描述

是因为执行定时任务的用户为kylin,而.pgpass文件的用户名和用户组为root:root,所以一直还是报这个错,改了.pgpass的所属用户名和用户组后,不出现这个问题,但出现另外一个问题,如下图:
在这里插入图片描述

这是另外一个问题,是因为执行脚本里的创建文件所在的目录的用户名和用户组跟执行脚本的用户名不一致导致 的。修改如下:

在这里插入图片描述
修改用户名和用户组权限

sudo chown -R kylin:lylin /opt/data/postgres/dbBackup

文章来源:https://blog.csdn.net/shandian534/article/details/134804087
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。