diff --git a/includes/database/database.inc b/includes/database/database.inc
index 6879f69..e615087 100644
--- a/includes/database/database.inc
+++ b/includes/database/database.inc
@@ -459,6 +459,7 @@
    *   The properly-prefixed string.
    */
   public function prefixTables($sql) {
+    $sql = str_replace("{system}", "{`system`}", $sql);
     return str_replace($this->prefixSearch, $this->prefixReplace, $sql);
   }
 
diff --git a/includes/database/mysql/database.inc b/includes/database/mysql/database.inc
index 356e039..d0b0264 100644
--- a/includes/database/mysql/database.inc
+++ b/includes/database/mysql/database.inc
@@ -86,9 +86,19 @@
     $connection_options += array(
       'init_commands' => array(),
     );
-    $connection_options['init_commands'] += array(
-      'sql_mode' => "SET sql_mode = 'REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER'",
-    );
+    // NO_AUTO_CREATE_USER is removed in MySQL 8.0.11
+    // https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-11.html#mysqld-8-0-11-deprecation-removal
+    $version_server = $this->getAttribute(PDO::ATTR_SERVER_VERSION);
+    if(version_compare($version_server, '8.0.11', '>=')){
+      $connection_options['init_commands'] += array(
+        'sql_mode' => "SET sql_mode = 'REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO'",
+      );
+    }
+    else{
+      $connection_options['init_commands'] += array(
+        'sql_mode' => "SET sql_mode = 'REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER'",
+      );
+    }
     // Execute initial commands.
     foreach ($connection_options['init_commands'] as $sql) {
       $this->exec($sql);
