From dd5065080549b73a404c5f66d64456e636de344f Mon Sep 17 00:00:00 2001 From: Till Date: Fri, 19 May 2023 19:32:08 +0200 Subject: [PATCH 1/6] Add MySQL version check in installer and updater. --- install/install.php | 3 +++ install/lib/installer_base.lib.php | 23 +++++++++++++++++++++++ install/update.php | 3 +++ 3 files changed, 29 insertions(+) diff --git a/install/install.php b/install/install.php index 64d05feecd..114410b53c 100644 --- a/install/install.php +++ b/install/install.php @@ -252,6 +252,9 @@ unset($tmp); include_once 'lib/mysql.lib.php'; $inst->db = new db(); +//* Check MySQL version +$inst->check_mysql_version(); + //** Begin with standard or expert installation $conf['services']['mail'] = false; diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php index fb84be14ff..06b7a411db 100644 --- a/install/lib/installer_base.lib.php +++ b/install/lib/installer_base.lib.php @@ -262,6 +262,29 @@ class installer_base { if($msg != '') die($msg); } + //** Check MySQL version + public function check_mysql_version() { + global $conf; + + $min_mariadb_version = '10.0.5'; + $min_mysql_version = '8.0.0'; + + $rec = $this->db->queryOneRecord('SELECT VERSION() as mysql_version;'); + $version = if(is_array($rec))? $rec['mysql_version']: '0'; + + if(strpos($version,'MariaDB')) { + // We have MariaDB + $parts = explode('-',$version); + $version = $parts[0]; + if(version_compare($version, $min_mariadb_version, '<')) die("Minimum required MariaDB version is ".$min_mariadb_version."\n"); + } else { + // we have MySQL + if(version_compare($version, $min_mysql_version, '<')) die("Minimum required MySQL version is ".$min_mysql_version."\n"); + } + + + } + public function force_configure_app($service, $enable_force=true) { $force = false; if(AUTOINSTALL == true) return false; diff --git a/install/update.php b/install/update.php index 6047b7b930..e03b5d9de1 100644 --- a/install/update.php +++ b/install/update.php @@ -274,6 +274,9 @@ $inst->db = new db(); $inst->db->setDBData($conf['mysql']["host"], $conf['mysql']["ispconfig_user"], $conf['mysql']["ispconfig_password"], $conf['mysql']["port"]); $inst->db->setDBName($conf['mysql']['database']); +//* Check MySQL version +$inst->check_mysql_version(); + //* initialize the master DB, if we have a multiserver setup if($conf['mysql']['master_slave_setup'] == 'y') { -- GitLab From ccb442f814a185bd761774ef0a69cf29cb69eed1 Mon Sep 17 00:00:00 2001 From: Till Date: Fri, 19 May 2023 19:42:32 +0200 Subject: [PATCH 2/6] Fixed typo. --- install/lib/installer_base.lib.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php index 06b7a411db..d45e3e52ce 100644 --- a/install/lib/installer_base.lib.php +++ b/install/lib/installer_base.lib.php @@ -267,10 +267,10 @@ class installer_base { global $conf; $min_mariadb_version = '10.0.5'; - $min_mysql_version = '8.0.0'; + $min_mysql_version = '8.0.4'; $rec = $this->db->queryOneRecord('SELECT VERSION() as mysql_version;'); - $version = if(is_array($rec))? $rec['mysql_version']: '0'; + $version = (is_array($rec))? $rec['mysql_version']: '0'; if(strpos($version,'MariaDB')) { // We have MariaDB -- GitLab From 9f0339e998c730fc253bb79ac2a67af50bca6968 Mon Sep 17 00:00:00 2001 From: Till Date: Sun, 21 May 2023 22:15:14 +0200 Subject: [PATCH 3/6] Improved MySQL version check. --- install/lib/installer_base.lib.php | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php index d45e3e52ce..b5f538d3ce 100644 --- a/install/lib/installer_base.lib.php +++ b/install/lib/installer_base.lib.php @@ -269,8 +269,12 @@ class installer_base { $min_mariadb_version = '10.0.5'; $min_mysql_version = '8.0.4'; - $rec = $this->db->queryOneRecord('SELECT VERSION() as mysql_version;'); - $version = (is_array($rec))? $rec['mysql_version']: '0'; + $rec = $this->db->queryOneRecord('SELECT VERSION() as mysql_version'); + if(is_array($rec)) { + $version = $rec['mysql_version'] + } else { + die("Unable to get MySQL version\n"); + } if(strpos($version,'MariaDB')) { // We have MariaDB -- GitLab From ed4f50bd09dd641c9052514880e39d3f7fe2072e Mon Sep 17 00:00:00 2001 From: Till Date: Mon, 22 May 2023 12:40:15 +0200 Subject: [PATCH 4/6] Fixed typo --- install/lib/installer_base.lib.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php index b5f538d3ce..654559a3b0 100644 --- a/install/lib/installer_base.lib.php +++ b/install/lib/installer_base.lib.php @@ -271,7 +271,7 @@ class installer_base { $rec = $this->db->queryOneRecord('SELECT VERSION() as mysql_version'); if(is_array($rec)) { - $version = $rec['mysql_version'] + $version = $rec['mysql_version']; } else { die("Unable to get MySQL version\n"); } -- GitLab From 1ef818a1e1b7c2bac97c4842973a20c4e8f73209 Mon Sep 17 00:00:00 2001 From: Till Date: Thu, 25 May 2023 17:57:22 +0200 Subject: [PATCH 5/6] Change required MySQL version for CentOS 7 --- install/lib/installer_base.lib.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php index 654559a3b0..a70e6b01e9 100644 --- a/install/lib/installer_base.lib.php +++ b/install/lib/installer_base.lib.php @@ -267,7 +267,8 @@ class installer_base { global $conf; $min_mariadb_version = '10.0.5'; - $min_mysql_version = '8.0.4'; + // Set MySQL version to 8.0.4 after CentOS 7 support ended to allow preg_* functions in SQL queries + $min_mysql_version = '5.5'; $rec = $this->db->queryOneRecord('SELECT VERSION() as mysql_version'); if(is_array($rec)) { -- GitLab From 90a7d000cd41cbaad35c031ae019875ca0b69bce Mon Sep 17 00:00:00 2001 From: Till Date: Thu, 25 May 2023 18:07:17 +0200 Subject: [PATCH 6/6] Show MySQL and MariaDB version during installation and update. --- install/lib/installer_base.lib.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php index a70e6b01e9..b42aa6b78a 100644 --- a/install/lib/installer_base.lib.php +++ b/install/lib/installer_base.lib.php @@ -281,9 +281,11 @@ class installer_base { // We have MariaDB $parts = explode('-',$version); $version = $parts[0]; + swriteln("MariaDB version ".$version); if(version_compare($version, $min_mariadb_version, '<')) die("Minimum required MariaDB version is ".$min_mariadb_version."\n"); } else { // we have MySQL + swriteln("MySQL version ".$version); if(version_compare($version, $min_mysql_version, '<')) die("Minimum required MySQL version is ".$min_mysql_version."\n"); } -- GitLab