Python PostgreSQL错误-psql:fe\U sendauth:未提供密码
我在AWS RDS中安装了PostgreSQL,数据库名称为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是一种托管服务,为了防止危及该服务的情况,不允许本
一些\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
文件是什么,我注意到我少了一颗星。:)