2. Using and Compiling PowerDNS FAQ

In the course of compiling and using PowerDNS, many questions may arise. Here are some we've heard earlier or questions we expect people may have. Please read this list before mailing us!

If you don't see your question answered here, please check out the Wiki FAQ, but do note that it is user-editable and not under our constant control.

Q: I get this entry a lot of times in my log file: Authoritative empty NO ERROR to for 'powerdns.nl' (AAAA)..

As the name implies, this is not an error. It tells you there are questions for a domain which exists in your database, but for which no record of the requested type exists. To get rid of this error, add log-dns-details=off to your configuration.

Q: Can I launch multiple backends simultaneously?

A: You can. This might for example be useful to keep an existing BIND configuration around but to store new zones in, say MySQL. The syntax to use is 'launch=bind,gmysql'.

Q: PowerDNS does not give authoritative answers, how come?

A: This is almost always not the case. An authoritative answer is recognized by the 'AA' bit being set. Many tools prominently print the number of Authority records included in an answer, leading users to conclude that the absence or presence of these records indicates the authority of an answer. This is not the case.

Verily, many misguided country code domain operators have fallen into this trap and demand authority records, even though these are fluff and quite often misleading. Invite such operators to look at section 6.2.1 of RFC 1034, which shows a correct authoritative answer without authority records. In fact, none of the non-deprecated authoritative answers shown have authority records!

Sorry for sounding like DJB on this, but we get so many misguided questions about authority..

Q: Which backend should I use? There are so many!

A: If you have no external constraints, the Generic MySQL (gmysql) and Generic PostgreSQL (gpgsql) ones are probably the most used and complete.

The Oracle backend also has happy users, we know of no deployments of the DB2 backend. The BIND backend is pretty capable too in fact, but many prefer a relational database.

Q: I'm trying to build from SVN but I get lots of weird errors!

A: Read the 'HACKING' file, it lists the build requirements (mostly autoconf, automake, libtool). In many cases, it may be easier to build from the source distribution though. More information for developers is available on the PowerDNS Open Source Community Wiki.

Q: When compiling I get errors about 'sstream' and 'ostringstream', or BITSPERCHAR

A: Your gcc is too old. Versions 2.95.2 and older are not supported. Many distributions have improved gcc 2.95.2 with an ostringstream implementation, in which case their 2.95.2 is also supported.

Q: PowerDNS crashes when I install the pdns-static .deb on Debian SID

A: Indeed. Install the .deb files that come with Debian or recompile PowerDNS yourself. If not using MySQL, the crashes will go away if you remove setuid and setgid statements from the configuration.

Q: Why don't my slaves act on notifications and transfer my updated zone?

A: Raise the serial number of your zone. In most backends, this is the first digit of the SOA contents field. If this number is lower to equal to that on a slave, it will not consider your zone updated.

Q: Master or Slave support is not working, PDNS is not picking up changes

A: The Master/Slave apparatus is off by default. Turn it on by adding a slave and/or master statement to the configuration file. Also, check that the configured backend is master or slave capable.

Q: My masters won't allow PowerDNS to access zones as it is using the wrong local IP address

A: Mark Bergsma contributed the query-local-address setting to tell PowerDNS which local IP address to use.

Q: I compiled PowerDNS myself and I see weird problems, especially on SMP

A: There are known issues between gcc <3.2 and PowerDNS on Linux SMP systems. The exact cause is not known but moving to our precompiled version always fixes the problems. If you compile yourself, use a recent gcc!

Q: I see this a lot: Backend error: Failed to execute mysql_query, perhaps connection died?

A: Check your MySQL timeout, it may be set too low. This can be changed in the my.cnf file.

Q: PowerDNS does not answer queries on all my IP addresses and I've ignored the warning I got about that at startup

A: Please don't ignore what PowerDNS says to you. Furthermore, read Chapter 21, Index of all Authoritative Server settings about the local-address setting, and use it to specify which IP addresses PowerDNS should listen on.

Q: Can I use a MySQL database with the Windows version of PowerDNS?

A: You can. MySQL support is supplied through the ODBC backend, which is compiled into the main binary. So if you want to use MySQL you can change the pdns.conf file, which is located in the PowerDNS for Windows directory, to use the correct ODBC data sources. If you don't know how to use ODBC with MySQL:

Then you can follow the instructions located in Chapter 3, Installing on Microsoft Windows. But instead of selecting the Microsoft Access Driver you select the MySQL ODBC Driver and configure it to use your MySQL database.


For other databases for which an ODBC driver is available, the procedure is the same as this example.