From c8667c4d9cdcadc5749906ed66d1ee9db61b9d3b Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Tue, 20 Sep 2016 16:10:52 +0200 Subject: [PATCH] Fixed #4191 Updating database user password on MySQL 5.7 leads to "double hash" How to reproduce issue --- server/plugins-available/mysql_clientdb_plugin.inc.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/server/plugins-available/mysql_clientdb_plugin.inc.php b/server/plugins-available/mysql_clientdb_plugin.inc.php index da1272ccfe..8d73978d04 100644 --- a/server/plugins-available/mysql_clientdb_plugin.inc.php +++ b/server/plugins-available/mysql_clientdb_plugin.inc.php @@ -140,7 +140,10 @@ class mysql_clientdb_plugin { } elseif($action == 'RENAME') { if(!$link->query("RENAME USER '".$link->escape_string($database_user)."'@'$db_host' TO '".$link->escape_string($database_rename_user)."'@'$db_host'")) $success = false; } elseif($action == 'PASSWORD') { - if(!$link->query("SET PASSWORD FOR '".$link->escape_string($database_user)."'@'$db_host' = '".$link->escape_string($database_password)."'")) $success = false; + //if(!$link->query("SET PASSWORD FOR '".$link->escape_string($database_user)."'@'$db_host' = '".$link->escape_string($database_password)."'")) $success = false; + // SET PASSWORD for already hashed passwords is not supported by latest MySQL 5.7 anymore, so we set it directly + if(!$link->query("UPDATE mysql.user SET `Password` = '".$link->escape_string($database_password)."' WHERE `Host` = '".$db_host."' AND `User` = '".$link->escape_string($database_user)."'")) $success = false; + if($success == true) $link->query("FLUSH PRIVILEGES"); } } -- GitLab