diff --git a/manifests/init.pp b/manifests/init.pp
index a623bac8639c3e56658576bbbf5b0836cc6973e5..8b82866fec8a7df41e32ac2a76cd844580c03cff 100644
--- a/manifests/init.pp
+++ b/manifests/init.pp
@@ -191,39 +191,50 @@ class aim_control (
 
   class { 'mysql::server':
     root_password    => $mysql_password,
-    databases        => {
-      $db_name => {
-        ensure  => 'present',
-        charset => 'utf8',
-      },
-    },
-    users            => {
-      "${skadereg_ro_user}@%" => {
-        ensure        => 'present',
-        password_hash => mysql_password($skadereg_ro_password),
-      },
-    },
-    grants           => {
-      "${skadereg_ro_user}@%/${db_name}.*" => {
-        ensure     => 'present',
-        privileges => ['SELECT'],
-        table      => "${db_name}.*",
-        user       => "${skadereg_ro_user}@%",
-      },
-      'root@%' => {
-        ensure     => 'present',
-        options    => ['GRANT'],
-        privileges => ['ALL'],
-        table      => '*.*',
-        user       => 'root@%',
-      },
-    },
     override_options => {
-      mysqld => {
+      'mysqld' => {
         'bind-address' => '0.0.0.0',
-        port           => 33060,
+        'port'         => 33060,
+        'socket'       => '/var/lib/mysql/mysql.sock',  # Add socket path explicitly if needed
       },
     },
+    restart => true,  # Ensure server restarts to apply configuration changes
+  }
+
+  # Create the database with the necessary charset
+  mysql::db { $db_name:
+    user     => $skadereg_ro_user,
+    password => $skadereg_ro_password,
+    host     => '%',
+    charset  => 'utf8',
+    grant    => ['SELECT'],
+  }
+
+  # Create the root user with full privileges
+  mysql_user { 'root@%':
+    ensure        => 'present',
+    password_hash => mysql_password($mysql_password),
+  }
+
+  mysql_grant { 'root@%/*.*':
+    ensure     => 'present',
+    options    => ['GRANT'],
+    privileges => ['ALL'],
+    table      => '*.*',
+    user       => 'root@%',
+  }
+
+  # Create the read-only user with select privileges on the database
+  mysql_user { "${skadereg_ro_user}@%":
+    ensure        => 'present',
+    password_hash => mysql_password($skadereg_ro_password),
+  }
+
+  mysql_grant { "${skadereg_ro_user}@%/${db_name}.*":
+    ensure     => 'present',
+    privileges => ['SELECT'],
+    table      => "${db_name}.*",
+    user       => "${skadereg_ro_user}@%",
   }
 
   # ['entries', 'guardian_confirmations', 'users'].each |String $table| {