diff --git a/core/lib/Drupal/Core/Database/Driver/mysql/Connection.php b/core/lib/Drupal/Core/Database/Driver/mysql/Connection.php
index dd8c299..ba7114e 100644
--- a/core/lib/Drupal/Core/Database/Driver/mysql/Connection.php
+++ b/core/lib/Drupal/Core/Database/Driver/mysql/Connection.php
@@ -218,6 +218,13 @@ public function databaseType() {
   }
 
   /**
+   * @inheritdoc
+   */
+  public function escapeDatabase($database) {
+    return '`' . parent::escapeDatabase($database) . '`';
+  }
+
+  /**
    * Overrides \Drupal\Core\Database\Connection::createDatabase().
    *
    * @param string $database
diff --git a/core/lib/Drupal/Core/Database/Install/Tasks.php b/core/lib/Drupal/Core/Database/Install/Tasks.php
index 9879998..e43129c 100644
--- a/core/lib/Drupal/Core/Database/Install/Tasks.php
+++ b/core/lib/Drupal/Core/Database/Install/Tasks.php
@@ -210,6 +210,7 @@ public function getFormOptions(array $database) {
     $form['database'] = array(
       '#type' => 'textfield',
       '#title' => t('Database name'),
+      '#description' => t('The database name can only contain alphanumeric characters, underscores or dots.'),
       '#default_value' => empty($database['database']) ? '' : $database['database'],
       '#size' => 45,
       '#required' => TRUE,
@@ -294,6 +295,11 @@ public function getFormOptions(array $database) {
   public function validateDatabaseSettings($database) {
     $errors = array();
 
+    // Verify there are no illegal characters in the database name.
+    if (!empty($database['database']) && preg_match('/[^a-zA-Z0-9_.]/', $database['database'])) {
+      $errors[$database['driver'] . '][database'] = t('The database name you have entered, %database, is invalid. The database name can only contain alphanumeric characters, underscores or dots.', array('%database' => $database['database']));
+    }
+
     // Verify the table prefix.
     if (!empty($database['prefix']) && is_string($database['prefix']) && !preg_match('/^[A-Za-z0-9_.]+$/', $database['prefix'])) {
       $errors[$database['driver'] . '][prefix'] = t('The database table prefix you have entered, %prefix, is invalid. The table prefix can only contain alphanumeric characters, periods, or underscores.', array('%prefix' => $database['prefix']));
