暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

解决 PgBouncer 启动报错:ERROR evdns_base_new failed

在 PgBouncer 启动时,启动命令执行结束没有任何反馈,也无报错,但是PgBouncer没有正常启动。 
在/。。。/pgbouncer/log/pgbouncer.log中,看到 CST [29067] ERROR evdns_base_new failed 报错。

于是在百度和bing搜索ERROR evdns_base_new failed,都没有与日志中报错一样的文章。翻墙谷歌后找到一篇netbackup的一篇文章里报错一样,提到
Since pgbouncer refers to /etc/resolv.conf file even when DNS is not used, it will not work properly if /etc/resolv.conf file is missing.
(由于即使不使用 DNS,pgbouncer 也会引用 /etc/resolv.conf 文件,因此如果缺少 /etc/resolv.conf 文件,它将无法正常工作。)

检查etc目录下,确实没有查到/etc/resolv.conf文件,手动 touch 生成 一个resolv.conf文件,启动还是一样的报错,
后来给resolv.conf文件配置了 一行  nameserver 127.0.0.1  后启动成功。

梳理网上相关文章,整理一下。ERROR evdns_base_new failed 错误通常表明 PgBouncer 在初始化 libevent 的 DNS 解析功能时遇到了问题。

可能原因

  1. /etc/resolv.conf 文件缺失或配置错误:该文件定义了 DNS 服务器的地址,如果文件不存在或指定的 DNS 服务器无法访问,将导致 DNS 解析失败。
  2. 网络问题:服务器可能无法访问配置的 DNS 服务器。
  3. 权限问题:某些情况下,PgBouncer 或其运行的用户可能没有足够的权限读取 /etc/resolv.conf 文件。

诊断步骤

  1. 检查 /etc/resolv.conf 文件

  2. 确认该文件存在且包含有效的 DNS 服务器地址。可以使用 cat /etc/resolv.conf 命令查看其内容。

  3. 测试 DNS 解析: 例如:nslookup google.com

  4. 检查 PgBouncer 和 libevent 版本兼容性

PgBouncer1.20及以上版本,一般在libevent2.0以上即可

解决方案

  1. 修正 /etc/resolv.conf 文件
    确保该文件包含有效的 DNS 服务器地址。如果文件不存在或为空,需要手动创建并编辑它
  2. 使用静态 IP 地址或本地 DNS 服务器
    如果可能,尝试将 DNS 服务器配置为静态 IP 地址或本地 DNS 服务器的地址,以减少网络依赖。
最后修改时间:2024-07-19 11:27:56
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论