首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用psql客户端连接到postgresql ipv6主机?

如何使用psql客户端连接到postgresql ipv6主机?
EN

Database Administration用户
提问于 2016-08-27 11:25:00
回答 2查看 3.2K关注 0票数 3
代码语言:javascript
运行
复制
# postgresql.conf
listen_addresses='::'

代码语言:javascript
运行
复制
# pg_hba.conf
hostssl  webdb  webserver   ::0/0    cert

postgresql服务器运行在带有可点击ipv6地址的"GlobalIPv6Address": "fe80::242:ac12:2"的对接器上,因此没有防火墙阻塞。

我使用以下命令连接

代码语言:javascript
运行
复制
psql --command="select * from test;" -d webdb -h fe80::242:ac12:2 -p 5432 -U postgres
psql: could not connect to server: Invalid argument
    Is the server running on host "fe80::242:ac12:2" and accepting
    TCP/IP connections on port 5432?

为什么主机不被识别?不可能在psql中使用ipv6吗?另外,我没有在psql中找到ssl参数选项。

EN

回答 2

Database Administration用户

回答已采纳

发布于 2016-08-27 14:08:12

正如Danielérité在评论中提到的,在Unix上,"%interface“应该作为ipv6地址的后缀。您可以通过运行ifconfig命令获得接口。所以,正确的psql命令是

代码语言:javascript
运行
复制
psql --command="select * from test;" -d webdb -h fe80::242:ac12:2%br-67d2c47f5b8e -p 5432 -U webserver

我还有其他问题。但现在,可以联系到主机了。接下来,我注意到后缀"clientcert = 1“必须添加到pg_hba.conf (不知道为什么)

代码语言:javascript
运行
复制
# pg_hba.conf
hostssl  webdb  webserver   ::0/0    cert clientcert=1

listen_addresses值在postgresql.conf中很好(仅限制请求和响应到ipv6地址)-- pg_hba.conf中的值'::0/0‘也是如此

然后,我从服务器获得ssl验证错误。我必须在我的客户端为psql设置路径变量。

代码语言:javascript
运行
复制
export PGSSLCERT=/my-folder/my-certificate.pem
export PGSSLKEY=/my-folder/my-private-key.pem

如果您的私钥受到密码保护,psql将提示您输入密码。一旦连接通过,(=> ssl工作正常),我注意到角色"webserver“没有登录权限。我必须使用改变角色来允许登录,并且不得不格兰特、选择和更新对测试表的访问。

现在起作用了。感谢丹尼尔提供的ipv6后缀解决方案。

票数 3
EN

Database Administration用户

发布于 2016-08-27 13:51:05

要使postgres在您的网络中可维护,您需要将listen_addresses配置为*

然后调整pg_hba.conf2以允许来自主机的连接。例如:

代码语言:javascript
运行
复制
hostssl  webdb  webserver   fe80::242:ac12:2/128    cert

完成文件后,重新加载postgres服务器。

请参阅关于更多身份验证错误的文档1。

希望能帮上忙。

参考文献:

  1. https://www.postgresql.org/docs/current/static/client-authentication-problems.html
  2. https://www.postgresql.org/docs/current/static/auth-pg-hba-conf.html
  3. http://www.ibm.com/support/knowledgecenter/STCMML8/com.ibm.storage.ts3500.doc/opg_三五八四_IPv4_IPv6_前缀_子网_mask.html
票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/148086

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档