AWS/RDS拒绝从pgAdmin导入文件。

4
我正在使用pgAdmin连接到我的RDS实例,该实例通过vpc进行ssh隧道。这个部分基本上没问题;我可以连接、查询表和创建表。问题在于我无法将CSV文件导入新创建的表;导入向导被拒绝并显示“退出代码2”(连接被拒绝)。
我尝试开启一个专门用于Postgres流量的新端口,但没有成功。这似乎应该是非常基本的操作;在没有SSH的RDS实例中,我可以毫不费力地完成相同的操作(使用相同的文件、终端等)。这看起来真的很基本,但我似乎甚至找不到一个指南。
编辑/补充:我已经取得了一些进展。如果我像这样运行命令:
ssh -N -L 1234:<rds-endpoint>:5432 ec2-user@<ec2-public-ip-addres> -i /Users/user/.ssh/permissionsfile.pem

然后在pgadmin中正常连接运行:

host: localhost 
port: 1234 
username: rds-username
maintenancedatabasae: rds-database
password: rds-usernames-password

这样做是可以的。我主要是对于无法将相同的ssh信息放入pgadmin感到困惑。通常这只需要简单的复制和粘贴操作。


1
嗨,很有趣,这可能会引起您的兴趣:https://medium.com/@deepspaceprog/how-to-connect-via-ssh-to-an-amazon-rds-instance-running-postgresql-5e7661cdd37e - jspcal
啊,是的,我在最初的设置中使用了它,并且已经让它在命令行中运行,这使得pgAdmin的拒绝更加令人困惑。我无法在pgAdmin中让相同的路径工作(例如通过发布在localhost / etc)。这很烦人,因为我可以通过pgAdmin进行ssh连接,但无法进行下一步操作。我确定我只是没有将正确的内容粘贴到正确的框中... - ike
1
你能否添加你输入的值到连接对话框中的哪个设置? - rfkortekaas
基本问题,但是您的用户是否具有目标表的追加/写入权限?通过查看目标表->属性->安全性来检查。 https://www.postgresql.org/docs/13/ddl-priv.html#PRIVILEGE-ABBREVS-TABLE - sgdata
@rfkortekaas 我尝试了各种方法:使用用户ec2-user@ipaddress作为主机,1234:endpoint:5432作为主机,只使用ec2-user和1234:endpoint:5432作为ssh主机等。 - ike
@sgoley,这是一个公正的问题,我应该包括在内:当我从这台计算机的命令行ssh时,我可以写入表格等(这是有道理的,因为我使用相同的配置在这台计算机上创建了它)。简而言之,那不是原因。 - ike
1个回答

1
首先,如果RDS位于“私有子网”中,则即使将“私有子网”连接到位于“公共子网”中的“NAT网关”,pgAdmin也无法连接到RDS。因此,要使私有子网公开,请在“私有子网”中设置“Internet网关”,而不是“NAT网关”。
其次,请检查安全组的“入站规则”是否对“5432(RDS postgresql端口)”开放了面向具有pgAdmin的“计算机”的访问。
第三,请检查RDS设置的“公共访问”是否为“是”,如下所示。如果是“否”,那么在VPC之外的工具无法连接到RDS。

enter image description here

告诉我你是否能够使用上述3种解决方案之一成功连接到RDS。


1
感谢您的建议,显然我没有清楚地写出我的解释。我可以正常连接。我可以在pgAdmin中创建表,甚至可以从我的计算机上编写表。唯一的问题是我无法通过pgAdmin向表中写入数据。 - ike
我只知道如何将pgAdmin连接到RDS。我对将csv文件导入RDS毫不了解。连接pgAdmin到RDS没有问题,因此问题应该出在导入csv文件部分。我不知道这些YouTube视频是否有助于使用pgAdmin将csv文件导入RDS。https://youtu.be/DMl5fsc8PSk 或 https://youtu.be/MpskUx3H1oU - Kai - Kazuya Ito

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接