如何在PSQL连接字符串中使用纯IPv6域名直连Supabase数据库?
问题:跳过Supavisor连接池直接连接Supabase数据库失败
背景
我希望避开Supavisor连接池,直接连接Supabase提供的数据库。Supabase给出的主机名为:db.MY_ID.supabase.co,该域名无IPv4地址,但可通过dig查询到其AAAA记录:
% dig AAAA db.MY_ID.supabase.co ; <<>> DiG 9.10.6 <<>> AAAA db.MY_ID.supabase.co ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 59725 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 512 ;; QUESTION SECTION: ;db.MY_ID.supabase.co. IN AAAA ;; ANSWER SECTION: db.MY_ID.supabase.co. 30 IN AAAA dead:beef:IPV6:IPV6::IPV6:IPV6:dead:beef ;; Query time: 44 msec ;; SERVER: 192.168.20.1#53(192.168.20.1) ;; WHEN: Sat Mar 08 09:49:28 AEDT 2025 ;; MSG SIZE rcvd: 92
连接失败现象
无论使用域名还是IPv6地址,psql均无法连接:
使用域名连接:
% psql "postgresql://db.MY_ID.supabase.co:5432/postgres?sslmode=require" -U myuser psql: error: could not translate host name "db.MY_ID.supabase.co" to address: nodename nor servname provided, or not known
使用IPv6地址连接:
% psql "postgresql://[dead:beef:IPV6:IPV6::IPV6:IPV6:dead:beef]:5432/postgres?sslmode=require" -U myuser psql: error: connection to server at "dead:beef:IPV6:IPV6::IPV6:IPV6:dead:beef", port 5432 failed: No route to host Is the server running on that host and accepting TCP/IP connections?
疑问
我哪里操作有误?是否可在Postgres层面解决该问题?
更新
grawity的判断正确,我的路由器未启用IPv6。此前仅本地IPv6可用,公网IPv6并未生效。
内容的提问来源于stack exchange,提问作者Adam A
相关产品推荐
相关产品推荐

