diff --git a/mysql/defaults/main.yml b/mysql/defaults/main.yml
index 38ce525a10fbcf767b2a5c930433540057d3d05c..e687fb7b39adb8ee0d7b829d6df00b855b41c0d5 100644
--- a/mysql/defaults/main.yml
+++ b/mysql/defaults/main.yml
@@ -8,3 +8,4 @@ mysql_backup_user: "backup"
 mysql_backup_password: "{{ lookup('passwordstore', 'db/{{ ansible_hostname }}-mysql-backup create=true length=20') }}"
 
 mysql_rsnapshot: false
+mysql_enable_binlog: false
diff --git a/mysql/files/override.conf b/mysql/files/override.conf
new file mode 100644
index 0000000000000000000000000000000000000000..4b46d21ed490928a0e88a0b0097fb32bf49bf785
--- /dev/null
+++ b/mysql/files/override.conf
@@ -0,0 +1,2 @@
+[Service]
+Environment=MYSQLD_OPTS=--log-bin
diff --git a/mysql/handlers/main.yml b/mysql/handlers/main.yml
new file mode 100644
index 0000000000000000000000000000000000000000..1d24e328fac09656147134d8147563a698003e29
--- /dev/null
+++ b/mysql/handlers/main.yml
@@ -0,0 +1,10 @@
+---
+
+- name: Reload systemd
+  systemd:
+    daemon_reload: true
+
+- name: Restart mariadb.service
+  systemd:
+    name: mariadb.service
+    state: restarted
diff --git a/mysql/tasks/main.yml b/mysql/tasks/main.yml
index 999f5648a64ba9d8906baa34d2f3f7b2f27bbd2e..e55d7467ff09c0856cc5d6757e03897ca82d8a60 100644
--- a/mysql/tasks/main.yml
+++ b/mysql/tasks/main.yml
@@ -62,3 +62,24 @@
       file:
         path: /etc/cron.d/mysql-snapshot
         state: absent
+
+- when: mysql_enable_binlog
+  block:
+    - name: Create mariadb.service override directory
+      file:
+        path: /etc/systemd/system/mariadb.service.d
+        state: directory
+        owner: root
+        group: root
+        mode: '0755'
+
+    - name: Enable binlog
+      copy:
+        src: override.conf
+        dest: /etc/systemd/system/mariadb.service.d/override.conf
+        owner: root
+        group: root
+        mode: '0644'
+      notify:
+        - Reload systemd
+        - Restart mariadb.service