AWS RDS Postgres实例连接报错database <user>不存在问题求助
AWS RDS Postgres 连接报错排查
该报错的核心逻辑是:Postgres 在连接时如果无法正确解析到指定的数据库名,会默认尝试连接和当前登录用户名同名的数据库,你收到的报错本质是连接请求没有正确命中你指定的test_db,转而请求访问和用户名同名的库但库不存在。
常见原因及排查步骤
- URI 格式解析错误:这是最高发的原因。如果你的用户名、密码中包含
@、:、/、?、#等URL特殊字符,没有做URL编码的话,会打乱psql对URI结构的解析,导致test_db参数被忽略,转而请求同名用户库。
规避方法:优先使用拆分参数的psql命令连接,无需处理转义:
执行后按提示输入密码即可,直接规避URI解析问题。psql -h <RDS实例端点> -p <端口> -U <你的用户名> -d test_db test_db未实际初始化成功:AWS RDS创建Postgres实例时,初始数据库名是可选配置项,如果你创建实例时没有填写初始库名,默认只会创建和主用户名同名的数据库,不会自动生成test_db。
验证方法:先连接默认的同名用户库(假设你的主用户名为admin):
连接成功后执行psql -h <RDS实例端点> -p <端口> -U admin -d admin\l命令查看所有已创建的数据库,确认是否存在test_db。如果不存在,执行以下命令手动创建即可:CREATE DATABASE test_db;- 连接参数填写错误:确认你使用的RDS端点、端口、用户名、密码和RDS控制台给出的信息完全一致,没有多余的空格或字符,Postgres默认端口为5432,如你自定义过端口请替换为实际值。
内容的提问来源于stack exchange,提问作者Eyal Solomon
相关产品推荐
相关产品推荐

