Windows环境下Go连接Docker中PostgreSQL提示关系不存在
问题解决:Go连接PostgreSQL提示“关系users不存在”
核心问题1:连接密码不匹配
你创建PostgreSQL容器时设置的密码是goLANGn1nja,但Go代码中的连接字符串用的是12345,这会导致你实际连接的数据库上下文和创建表的上下文不一致(即使Ping()成功,也可能是因为你后来修改过容器密码,但代码里没同步)。
修正代码中的连接字符串:
db, err := sql.Open("postgres", "host=127.0.0.1 port=5432 user=postgres dbname=postgres sslmode=disable password=goLANGn1nja")
核心问题2:Schema未指定(备选排查方向)
PostgreSQL默认使用public schema,但如果你的表被创建在其他schema下,或者客户端连接时的search_path未包含public,就会找不到表。
尝试在查询中明确指定schema:
rows, err := db.Query("SELECT * FROM public.users")
验证步骤(确保表存在于目标数据库)
在PowerShell进入容器的psql终端后,执行以下命令确认:
- 查看当前数据库:
SELECT current_database();—— 确认是postgres - 查看所有表:
\dt—— 确认users表出现在publicschema下
内容的提问来源于stack exchange,提问作者DanyaZhurba
相关产品推荐
相关产品推荐

