我最近编写了一个脚本,可以自动将新的子域记录输入到 PDS mySql 数据库中。现在,如果我使用 Zone Admin 手动输入条目,我的子域将 100% 正常工作。现在,如果我使用简单的 SQL 插入字符串添加它,例如,"insert into records (domain_id, name,type,content,ttl,prio) values(";
它不起作用,我被告知我需要更新 SOA 序列,我这样做了,但它就是不想生效。我做了以下操作,但这不起作用date(Ymd)."01"
,任何建议都将不胜感激
答案1
亚历克斯和罗兰,使用 gmysql 后端或任何其他 RDBMS 后端,您无需发出任何重新加载命令,PowerDNS 将通过查看相应 SOA 记录中的序列值来知道区域已更改。
SOA 序列号需要增加,这意味着需要now > then
按顺序让 PowerDNS 通知其从属设备有关更改,因此如果您用 YYYYMMDD01 覆盖 YYYYMMDD01,那是行不通的。
还要注意,PowerDNS 将向给定域条目的 NS 记录指定的所有名称服务器发送 NOTIFY,但是只有在主模式下运行时才会这样做。例如,master=yes
在 pdns.conf 中,默认为 NATIVE 模式,它假定后端数据通过 mysql 复制或其他方式在后台同步。
http://doc.powerdns.com/generic-mypgsql-backends.html#AEN5985
顺便说一下,您可以访问我们#powerdns@irc.oftc.net。
答案2
我自己没有尝试过,但我认为您需要运行“pdns_control reload”来告诉后端进程内容已更改,需要重新读取。
以下是pdns 内部原理文档。