If you are planning to upgrade your PowerDNS server to its latest release and you are using MySQL as backend, here are the things you will need to check to save yourself from unnecessary service downtime:

pdns.conf

Uncomment and define the line:



# launch        Which backends to launch and order to query them in
launch=gmysql


Edit your gmysql.conf file found in /etc/powerdns/pdns.d



# MySQL Configuration
# gmysql parameters
gmysql-host=127.0.0.1
gmysql-port=3306
gmysql-dbname=pdns
gmysql-user=pdns
gmysql-password=your_pdns_password
gmysql-dnssec=yes
#gmysql-socket=/var/run/mysqld/mysqld.sock


MySQL Schema

records table must have the following fields and properties/attributes:



  disabled              TINYINT(1) DEFAULT 0,
  ordername             VARCHAR(255) BINARY DEFAULT NULL,
  auth                  TINYINT(1) DEFAULT 1,


Once you have your existing data imported to the new server with the latest schema, check the following:



1. records table, auth column must be set to have a value of 1

2. record entries must not have illegal characters


To check that you have the valid records and required fields to run PowerDNS, do the following commands:



pdnssec check-zone yourdomain.com


If there are errors from the above command, make sure to fix them first before you proceed below.


pdnssec rectify-zone yourdomain.com

Again, if errors are showing from the command above, make sure to fix it first and run the above commands again until there are no errors showing anymore.

You may need to restart or reload your PowerDNS process to get all the changes to effect.


service pdns restart

That’s about it. If you have tips that are not mentioned here or if you have questions, Please feel free to drop me a line using the comment box below.

Leave a Reply

Your email address will not be published. Required fields are marked *