mysql services
diff --git a/README.rst b/README.rst
index 6fb9241..bf907aa 100644
--- a/README.rst
+++ b/README.rst
@@ -3,8 +3,20 @@
 PowerDNS
 ========
 
+Sample pillar:
 
+PowerDNS server with MySQL backend
 
+	powedns:
+	  server:
+	    enabled: true
+	    backend:
+	      engine: mysql
+	      host: localhost
+	      port: 3306
+	      name: pdns
+	      user: pdn
+	      password: password
 
 Read more
 =========
\ No newline at end of file
diff --git a/files/pdns.conf b/files/pdns.conf
index 873f38c..3a51884 100644
--- a/files/pdns.conf
+++ b/files/pdns.conf
@@ -1,3 +1,4 @@
+{%- from "pdns/map.jinja" import server with context %}
 # Autogenerated configuration file template
 #################################
 # allow-axfr-ips    If enabled, restrict zonetransfers to originate from these
@@ -79,7 +80,7 @@
 #################################
 # launch	Which backends to launch and order to query them in
 #
-launch=gmysql
+launch={% if server.backend.engine == 'mysql' %}gmysql{% else %}{{ server.backend.engine }}{% endif %}
 
 #################################
 # load-modules	Load this module - supply absolute or relative path
@@ -89,7 +90,7 @@
 #################################
 # local-address	Local IP address to which we bind
 #
-local-address=0.0.0.0
+local-address={{ server.bind.address }}
 
 #################################
 # local-ipv6	Local IP address to which we bind
@@ -99,7 +100,7 @@
 #################################
 # local-port	The port on which we listen
 #
-local-port=53
+local-port={{ server.bind.port }}
 
 #################################
 # log-dns-details	If PDNS should log failed update requests
diff --git a/files/pdns.local.gmysql.conf b/files/pdns.local.gmysql.conf
new file mode 100644
index 0000000..d81f357
--- /dev/null
+++ b/files/pdns.local.gmysql.conf
@@ -0,0 +1,14 @@
+{%- from "pdns/map.jinja" import server with context %}
+# MySQL Configuration
+#
+# Launch gmysql backend
+launch=gmysql
+
+# gmysql parameters
+gmysql-host={{ server.backend.host }}
+gmysql-port={{ server.backend.port }}
+gmysql-dbname={{ server.backend.name }}
+gmysql-user={{ server.backend.user }}
+gmysql-password={{ server.backend.password }}
+gmysql-dnssec=yes
+# gmysql-socket=
diff --git a/map.jinja b/map.jinja
index 79e3b4b..0d74fa6 100644
--- a/map.jinja
+++ b/map.jinja
@@ -2,14 +2,30 @@
 {%- set server = salt['grains.filter_by']({
     'Debian': {
         'pkgs': ['pdns-server'],
+        'mysql_pkgs': ['pdns-backend-mysql'],
         'service': 'pdns',
         'config': '/etc/powerdns/pdns.conf',
         'local_config': '/etc/powerdns/pdns.d/pdns.local.conf',
+        'bind': {
+            'address': '0.0.0.0',
+            'port': '53'
+        },
+        'backend': {
+            'engine': 'mysql',
+        }
     },
     'RedHat': {
         'pkgs': ['pdns-server'],
+        'mysql_pkgs': ['pdns-backend-mysql'],
         'service': 'pdns',
         'config': '/etc/powerdns/pdns.conf',
         'local_config': '/etc/powerdns/pdns.d/pdns.local.conf',
+        'bind': {
+            'address': '0.0.0.0',
+            'port': '53'
+        },
+        'backend': {
+            'engine': 'mysql',
+        }
     },
 }, merge=salt['pillar.get']('powerdns:server')) %}
diff --git a/server/service.sls b/server/service.sls
index 06e88bc..648991b 100644
--- a/server/service.sls
+++ b/server/service.sls
@@ -15,6 +15,26 @@
   - require:
     - pkg: powerdns_packages
 
+{%- if server.backend.engine == 'mysql' %}
+
+powerdns_mysql_packages:
+  pkg.installed:
+  - names: {{ server.mysql_pkgs }}
+
+pdns.local.gmysql.conf:
+  file.managed:
+  - source: salt://powerdns/files/pdns.local.gmysql.conf
+  - template: jinja
+  - user: root
+  - group: root
+  - mode: 600
+  - require:
+    - pkg: powerdns_mysql_packages
+  - watch_in:
+    - service: powerdns_service
+
+{%- endif %}
+
 powerdns_service:
   service.running:
   - enable: true