Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python PostgreSQL错误-psql:fe\U sendauth:未提供密码_Python_Postgresql_Amazon Web Services_Psycopg2_Aws Rds - Fatal编程技术网

Python PostgreSQL错误-psql:fe\U sendauth:未提供密码

Python PostgreSQL错误-psql:fe\U sendauth:未提供密码,python,postgresql,amazon-web-services,psycopg2,aws-rds,Python,Postgresql,Amazon Web Services,Psycopg2,Aws Rds,我在AWS RDS中安装了PostgreSQL,数据库名称为一些\u文件 DB的用户名是mobileuser。它已被授予超级用户权限 我想每天在名为data\u table的表中复制csv文件。因此,我编写了一个python脚本(使用psycopg2),它将连接到此数据库并复制它。 我尝试使用COPY命令。但是收到了一个错误 从“csv_位置”复制mobile user.data_表 它给了我一个错误,我需要成为超级用户才能执行此操作。据 RDS是一种托管服务,为了防止危及该服务的情况,不允许本

我在AWS RDS中安装了PostgreSQL,数据库名称为
一些\u文件

DB的用户名是
mobileuser
。它已被授予超级用户权限

我想每天在名为
data\u table
的表中复制csv文件。因此,我编写了一个python脚本(使用psycopg2),它将连接到此数据库并复制它。 我尝试使用
COPY
命令。但是收到了一个错误

从“csv_位置”复制mobile user.data_表

它给了我一个错误,我需要成为超级用户才能执行此操作。据

RDS是一种托管服务,为了防止危及该服务的情况,不允许本地主机访问。Postgres“COPY”命令使服务器本身读/写文件——可能直接在Postgres主机上。因此受到限制。
另一种方法是使用基于客户端的psql指令“\copy”。该命令的文档可在Postgres在线手册中找到。

所以我尝试使用
\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文件添加到我的主目录中
*:*:*:*:*:我的密码
,权限为
600

尽管如此,它还是给了我错误
psql:fe_sendauth:no password supplied
我正在使用
root
user

运行python脚本,而您正在

以root用户身份运行python脚本


(为什么?)。我还有其他依赖项命令和postgresql命令,它们需要root权限。所以,我以root运行它user@Neil当前位置那我就没有什么想法了。如果您没有混淆服务器、用户或目录,我看不出这里有什么问题。谢谢您查看。我已经试了大约一天,然后发布了这个问题,因为即使是我也无法理解它出了什么问题。找到了问题。在密码文件中,我遗漏了1*。因此,我没有使用
*:*:*:*:password
,而是使用了
*:*:*:password
实际上,问题中的星星是正确的,因为我没有从密码文件中复制它。我从我的同事那里得到了这个问题的帮助,并向他解释了
.pgpass
文件是什么,我注意到我少了一颗星。:)