throw new SystemException("The update requires PHP in version {$requiredPHPVersion} or newer.");
}
}
+
+// check sql version
+$sqlVersion = WCF::getDB()->getVersion();
+$compareSQLVersion = preg_replace('/^(\d+\.\d+\.\d+).*$/', '\\1', $sqlVersion);
+if (stripos($sqlVersion, 'MariaDB') === false) {
+ // For MySQL 8.0, MySQL 8.0.14+ is required
+ // https://bugs.mysql.com/bug.php?id=88718
+ if ($compareSQLVersion[0] === '8') {
+ // MySQL 8.0.14+
+ if (!(version_compare($compareSQLVersion, '8.0.14') >= 0)) {
+ if (WCF::getLanguage()->getFixedLanguageCode() == 'de') {
+ throw new SystemException("Ihre eingesetzte Version von MySQL 8 enthält einen bekannten Fehler und verhindert eine Aktualisierung, es wird mindestens MySQL 8.0.14 oder höher benötigt.");
+ }
+ else {
+ throw new SystemException("The version of MySQL 8 that you are using contains a known bug that prevents an upgrade, MySQL 8.0.14 or newer is required.");
+ }
+ }
+ }
+}
];
public $mysqlVersions = [
- 'mysql' => '5.5.35',
+ 'mysql' => [
+ // MySQL 8.0 < 8.0.14 contains a nasty bug
+ // https://bugs.mysql.com/bug.php?id=88718
+ '5' => '5.5.35',
+ '8' => '8.0.14',
+ ],
'mariadb' => [
// MariaDB 5.5.47+ or 10.0.22+ are required
// https://jira.mariadb.org/browse/MDEV-8756
}
}
else {
- // MySQL 5.5.35+
- if (!(version_compare($compareSQLVersion, '5.5.35') >= 0)) {
- throw new SystemException("Insufficient MySQL version '".$compareSQLVersion."'. Version '5.5.35' or greater is needed.");
+ // MySQL 5.5.35+ or MySQL 8.0.14+ are required
+ // https://bugs.mysql.com/bug.php?id=88718
+ if ($compareSQLVersion[0] === '8') {
+ // MySQL 8.0.14+
+ if (!(version_compare($compareSQLVersion, '8.0.14') >= 0)) {
+ throw new SystemException("Insufficient MySQL version '".$compareSQLVersion."'. Version '5.5.35' or greater, or version '8.0.14' or greater is needed.");
+ }
+ }
+ else if (!(version_compare($compareSQLVersion, '5.5.35') >= 0)) {
+ // MySQL 5.5.35+
+ throw new SystemException("Insufficient MySQL version '".$compareSQLVersion."'. Version '5.5.35' or greater, or version '8.0.14' or greater is needed.");
}
}
<item name="wcf.acp.systemCheck.php.version"><![CDATA[Version]]></item>
<item name="wcf.acp.systemCheck.php.version.description"><![CDATA[Es wird mindestens PHP {$phpVersions[minimum]} benötigt, empfohlen werden die folgenden Versionsreihen von PHP: {implode from=$phpVersions[recommended] item=$recommended}{$recommended}{/implode}.]]></item>
<item name="wcf.acp.systemCheck.mysql.version"><![CDATA[MySQL]]></item>
- <item name="wcf.acp.systemCheck.mysql.version.description"><![CDATA[Es wird mindestens MySQL {$mysqlVersions[mysql]} bzw. MariaDB {$mysqlVersions[mariadb][5]} oder MariaDB {$mysqlVersions[mariadb][10]} benötigt, grundsätzlich wird der Einsatz neuerer Version ausdrücklich empfohlen.]]></item>
+ <item name="wcf.acp.systemCheck.mysql.version.description"><![CDATA[Es wird mindestens MySQL {$mysqlVersions[mysql][5]} oder MySQL {$mysqlVersions[mysql][8]} bzw. MariaDB {$mysqlVersions[mariadb][5]} oder MariaDB {$mysqlVersions[mariadb][10]} benötigt, grundsätzlich wird der Einsatz neuerer Version ausdrücklich empfohlen.]]></item>
<item name="wcf.acp.systemCheck.mysql.foreignKeys"><![CDATA[Fremdschlüssel]]></item>
<item name="wcf.acp.systemCheck.mysql.foreignKeys.description"><![CDATA[Fremdschlüssel werden mit der Installation in der Datenbank angelegt und werden für einen einwandfreien Betrieb benötigt.]]></item>
<item name="wcf.acp.systemCheck.mysql.searchEngine"><![CDATA[Suche]]></item>
<item name="wcf.acp.systemCheck.php.version"><![CDATA[Version]]></item>
<item name="wcf.acp.systemCheck.php.version.description"><![CDATA[PHP {$phpVersions[minimum]} or newer is required, the following PHP series are strongly recommended: {implode from=$phpVersions[recommended] item=$recommended}{$recommended}{/implode}.]]></item>
<item name="wcf.acp.systemCheck.mysql.version"><![CDATA[MySQL]]></item>
- <item name="wcf.acp.systemCheck.mysql.version.description"><![CDATA[MySQL {$mysqlVersions[mysql]} or MariaDB {$mysqlVersions[mariadb][5]} or MariaDB {$mysqlVersions[mariadb][10]} are required at minimum, but it’s strongly recommended to always use the latest available version.]]></item>
+ <item name="wcf.acp.systemCheck.mysql.version.description"><![CDATA[MySQL {$mysqlVersions[mysql][5]} or MySQL {$mysqlVersions[mysql][8]} or MariaDB {$mysqlVersions[mariadb][5]} or MariaDB {$mysqlVersions[mariadb][10]} are required at minimum, but it’s strongly recommended to always use the latest available version.]]></item>
<item name="wcf.acp.systemCheck.mysql.foreignKeys"><![CDATA[Foreign Keys]]></item>
<item name="wcf.acp.systemCheck.mysql.foreignKeys.description"><![CDATA[Foreign Keys are created with the installation and are required for the software to work.]]></item>
<item name="wcf.acp.systemCheck.mysql.searchEngine"><![CDATA[Search]]></item>
'en' => 'MySQL Requirements'
],
'mysql_version' => [
- 'de' => 'Bitte stellen Sie sicher, dass MySQL 5.5.35+ oder MariaDB 10.0.22+ mit InnoDB-Unterstützung vorhanden ist.',
- 'en' => 'Please make sure that MySQL 5.5.35+ or MariaDB 10.0.22+, with InnoDB support is available.'
+ 'de' => 'Bitte stellen Sie sicher, dass MySQL 5.5.35+/MySQL 8.0.14+ oder MariaDB 10.0.22+ mit InnoDB-Unterstützung vorhanden ist.',
+ 'en' => 'Please make sure that MySQL 5.5.35+/MySQL 8.0.14+ or MariaDB 10.0.22+, with InnoDB support is available.'
],
'result' => [
'de' => 'Ergebnis',