From aeb40112794c8c4c9e9862986ed51792cfd7253c Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Tue, 26 Jul 2016 12:38:14 +0200 Subject: [PATCH] Fix misleading MySQL DB creation error (#25485) Whenever the GRANT ALL failed, it used to display "Database creation failed" which is incorrect. It's only the privleges setting that failed. This moves the privilege setting message to DEBUG and makes it more precise. --- lib/private/Setup/MySQL.php | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/lib/private/Setup/MySQL.php b/lib/private/Setup/MySQL.php index 817a606060..4ad6926c2d 100644 --- a/lib/private/Setup/MySQL.php +++ b/lib/private/Setup/MySQL.php @@ -61,12 +61,20 @@ class MySQL extends AbstractDatabase { //we can't use OC_BD functions here because we need to connect as the administrative user. $query = "CREATE DATABASE IF NOT EXISTS `$name` CHARACTER SET utf8 COLLATE utf8_bin;"; $connection->executeUpdate($query); + } catch (\Exception $ex) { + $this->logger->error('Database creation failed: {error}', [ + 'app' => 'mysql.setup', + 'error' => $ex->getMessage() + ]); + return; + } + try { //this query will fail if there aren't the right permissions, ignore the error $query="GRANT ALL PRIVILEGES ON `$name` . * TO '$user'"; $connection->executeUpdate($query); } catch (\Exception $ex) { - $this->logger->error('Database creation failed: {error}', [ + $this->logger->debug('Could not automatically grant privileges, this can be ignored if database user already had privileges: {error}', [ 'app' => 'mysql.setup', 'error' => $ex->getMessage() ]);