From a7f55ba1cb95a50936d7fa0eb9fc6af5e55a9dab Mon Sep 17 00:00:00 2001 From: Edward Yang Date: Tue, 6 Sep 2022 21:50:59 +0800 Subject: [PATCH] =?UTF-8?q?mysql=20=E7=89=88=E6=9C=AC=E6=A3=80=E6=B5=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/EnvironmentController.php | 17 ++++++++++------- beike/Installer/Lang/en/installer_messages.php | 1 + .../Installer/Lang/zh_cn/installer_messages.php | 1 + 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/beike/Installer/Controllers/EnvironmentController.php b/beike/Installer/Controllers/EnvironmentController.php index 7fc86194..b91aeba8 100644 --- a/beike/Installer/Controllers/EnvironmentController.php +++ b/beike/Installer/Controllers/EnvironmentController.php @@ -103,7 +103,7 @@ class EnvironmentController extends Controller * Validate database connection with user credentials (Form Wizard). * * @param Request $request - * @return bool + * @return array|bool */ private function checkDatabaseConnection(Request $request) { @@ -132,12 +132,16 @@ class EnvironmentController extends Controller DB::purge(); + $result = []; try { - DB::connection()->getPdo(); - + $pdo = DB::connection()->getPdo(); + $serverVersion = $pdo->getAttribute(\PDO::ATTR_SERVER_VERSION); + if (version_compare($serverVersion, '5.7', '>=')) { + $result['database_version'] = trans('installer::installer_messages.environment.db_connection_failed_invalid_version'); + return $result; + } return true; - } catch (Exception $e) { - $result = []; + } catch (\PDOException $e) { switch ($e->getCode()) { case 2002: $result['database_hostname'] = trans('installer::installer_messages.environment.db_connection_failed_host_port'); @@ -151,9 +155,8 @@ class EnvironmentController extends Controller $result['database_name'] = trans('installer::installer_messages.environment.db_connection_failed_database_name'); break; default: - } - return $result; } + return $result; } } diff --git a/beike/Installer/Lang/en/installer_messages.php b/beike/Installer/Lang/en/installer_messages.php index dd75a9c6..e9b383e2 100644 --- a/beike/Installer/Lang/en/installer_messages.php +++ b/beike/Installer/Lang/en/installer_messages.php @@ -72,6 +72,7 @@ return [ 'db_connection_failed_host_port' => 'Database host or port error!', 'db_connection_failed_user_password' => 'Database username or password error!', 'db_connection_failed_database_name' => 'Database name not exist!', + 'db_connection_failed_invalid_version' => 'MySQL version must grater than 5.7!', 'app_environment_label_local' => 'Local', 'app_environment_label_developement' => 'Development', 'app_environment_label_qa' => 'Qa', diff --git a/beike/Installer/Lang/zh_cn/installer_messages.php b/beike/Installer/Lang/zh_cn/installer_messages.php index b65dd259..5fb4c6b3 100644 --- a/beike/Installer/Lang/zh_cn/installer_messages.php +++ b/beike/Installer/Lang/zh_cn/installer_messages.php @@ -68,6 +68,7 @@ return [ 'db_connection_failed_host_port' => '数据库主机或端口错误!', 'db_connection_failed_user_password' => '数据库账号或密码错误!', 'db_connection_failed_database_name' => '数据库名不存在!', + 'db_connection_failed_invalid_version' => '数据库版本必须大于5.7!', 'db_connection_label_mysql' => 'MySQL', 'db_connection_label_sqlite' => 'SQLite', 'db_connection_label_pgsql' => 'PostgreSQL',