diff --git a/CRM/Upgrade/Incremental/General.php b/CRM/Upgrade/Incremental/General.php
index 3820347d65edad839f500d0b9fb224a154850924..b8515fd7647bd2ab84239fc60b7595395ac914ee 100644
--- a/CRM/Upgrade/Incremental/General.php
+++ b/CRM/Upgrade/Incremental/General.php
@@ -58,6 +58,13 @@ class CRM_Upgrade_Incremental_General {
    */
   const MIN_INSTALL_MYSQL_VER = '5.5';
 
+  /**
+   * The minimum MySQL/MariaDB version required to install Civi.
+   *
+   * @see install/index.php
+   */
+  const NEW_MIN_INSTALL_MYSQL_VER = '5.6.5';
+
   /**
    * Compute any messages which should be displayed before upgrade.
    *
@@ -77,6 +84,25 @@ class CRM_Upgrade_Incremental_General {
       ]);
       $preUpgradeMessage .= '</p>';
     }
+    if (version_compare(CRM_Utils_SQL::getDatabaseVersion(), self::MIN_RECOMMENDED_MYSQL_VER) < 0 && version_compare(CRM_Utils_SQL::getDatabaseVersion(), self::NEW_MIN_INSTALL_MYSQL_VER) >= 0) {
+      $preUpgradeMessage .= '<p>';
+      $preUpgradeMessage .= ts('You may proceed with the upgrade and CiviCRM %1 will continue working normally, but future releases will require MySQL version %2 or above or MariaDB version %3 or above.', [
+        1 => $latestVer,
+        2 => self::MIN_RECOMMENDED_MYSQL_VER,
+        3 => '10.1',
+      ]);
+      $preUpgradeMessage .= '</p>';
+    }
+    if (version_compare(CRM_Utils_SQL::getDatabaseVersion(), self::NEW_MIN_INSTALL_MYSQL_VER) < 0) {
+      $preUpgradeMessage .= '<p>';
+      $preUpgradeMessage .= ts('You may proceed with the upgrade and CiviCRM %1 will continue working normally, but CiviCRM versions from 5.28 onwards will require at least MySQL version %1. It is recommended to use MySQL version %3 or above or MariaDB version %4 or above.', [
+        1 => $latestVer,
+        2 => self::NEW_MIN_INSTALL_MYSQL_VER,
+        3 => self::MIN_RECOMMENDED_MYSQL_VER,
+        4 => '10.1',
+      ]);
+      $preUpgradeMessage .= '</p>';
+    }
 
     // http://issues.civicrm.org/jira/browse/CRM-13572
     // Depending on how the code was upgraded, some sites may still have copies of old
diff --git a/CRM/Utils/Check/Component/Env.php b/CRM/Utils/Check/Component/Env.php
index 8cc07c6e95aaade7a1fa8717684d25613af07160..6e34a50090bac61ca53f1b35b501af838688908f 100644
--- a/CRM/Utils/Check/Component/Env.php
+++ b/CRM/Utils/Check/Component/Env.php
@@ -949,10 +949,37 @@ class CRM_Utils_Check_Component_Env extends CRM_Utils_Check_Component {
           3 => '10.1',
         ]),
         ts('MySQL Out of date'),
+        \Psr\Log\LogLevel::ERROR,
+        'fa-server'
+      );
+    }
+    elseif (version_compare(CRM_Utils_SQL::getDatabaseVersion(), CRM_Upgrade_Incremental_General::NEW_MIN_INSTALL_MYSQL_VER, '<')) {
+      $messages[] = new CRM_Utils_Check_Message(
+        __FUNCTION__,
+        ts('This system uses MySQL/MariaDB version %1. CiviCRM versions 5.28 and onwards will require MySQL version at least %2, however MySQL version %3 or MariaDB version %4 is recommended', [
+          1 => $version,
+          2 => CRM_Upgrade_Incremental_General::NEW_MIN_INSTALL_MYSQL_VER,
+          3 => $minRecommendedVersion,
+          4 => '10.1',
+        ]),
+        ts('MySQL Out of date'),
         \Psr\Log\LogLevel::WARNING,
         'fa-server'
       );
     }
+    elseif (version_compare(CRM_Utils_SQL::getDatabaseVersion(), $minRecommendedVersion, '<')) {
+      $messages[] = new CRM_Utils_Check_Message(
+        __FUNCTION__,
+        ts('This system uses MySQL/MariaDB version %1. You can continue to use that version of MySQL however support for it is likely to be removed shortly, MySQL version %2 or MariaDB version %3 is recommended', [
+          1 => $version,
+          2 => $minRecommendedVersion,
+          3 => '10.1',
+        ]),
+        ts('MySQL Out of date'),
+        \Psr\Log\LogLevel::NOTICE,
+        'fa-server'
+      );
+    }
     return $messages;
   }