PostgreSQL错误 - psql:fe_sendauth:没有提供密码

时间:2016-11-11 04:01:58

标签: python postgresql amazon-web-services psycopg2 aws-rds

我在AWS RDS中设置了PostgreSQL,数据库名称为some_files DB的用户名是mobileuser。它已获得超级用户权限

我想每天在名为data_table的表中复制csv文件。所以,我写了一个python脚本(使用psycopg2),它将连接到这个数据库并复制它。 我尝试使用COPY命令。但收到错误

COPY mobile user.data_table FROM 'csv_location';

它给了我错误,我需要成为超级用户才能执行此操作。根据{{​​3}}

RDS is a managed service and in order to prevent situations that compromise that service, localhost access is not permitted. The Postgres "COPY" command causes the server itself to read/write files -- potentially directly on the Postgres host. Therefore it is restricted. An alternative is to use the client based, psql instruction "\copy". Documentation for that command can be found in the Postgres online manual.

所以我尝试使用\copy

使用psql命令
terminal_command = "psql -h rds_hostname -U mobileuser -w -d some_files -c \copy "+schema_name+"."+table_name+" FROM 'csv_location' DELIMITER '|' CSV HEADER"
subprocess.call(terminal_command,shell=True)

我将.pgpass文件添加到我的主目录 *:*:*:*:my_password权限为600

但是,它给了我错误psql: fe_sendauth: no password supplied 我正在使用root用户

运行python脚本

1 个答案:

答案 0 :(得分:0)

你是......

  

root用户

运行python脚本

(为什么?).pgpass文件必须位于root的主目录中,不是您用户帐户的主目录。