Bug #76651 [Com]: Can't establish a connection to MySQL after upgrading PHP from 7.2.7 to 7.2.8

From: Date: Thu, 06 Sep 2018 08:06:28 +0000
Subject: Bug #76651 [Com]: Can't establish a connection to MySQL after upgrading PHP from 7.2.7 to 7.2.8
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-216907@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=76651&edit=1 ID: 76651 Comment by: no at mail dot her Reported by: itaylorswift365 at gmail dot com Summary: Can't establish a connection to MySQL after upgrading PHP from 7.2.7 to 7.2.8 Status: Assigned Type: Bug Package: MySQLi related Operating System: Debian 9.5 x64 PHP Version: 7.2.8 Assigned To: mysql Block user comment: N Private report: N New Comment: Niki, You're right. Using phpMyAdmin and MySql 8.0.12 for testing, depending on the db user's auth type, the following error messages are returned: PHP 7.2.7: Auth type Standard: Works, no errors. Auth type caching_sha2_password: mysqli_real_connect(): The server requested authentication method unknown to the client [caching_sha2_password] mysqli_real_connect(): (HY000/2054): The server requested authentication method unknown to the client PHP 7.2.8: Auth type Standard: mysqli_real_connect(): Unexpected server respose while doing caching_sha2 auth: 109 mysqli_real_connect(): MySQL server has gone away mysqli_real_connect(): (HY000/2006): MySQL server has gone away Auth type caching_sha2_password: mysqli_real_connect(): PHP was built without openssl extension, can't send password encrypted mysqli_real_connect(): (HY000/1045): Access denied for user 'user123'@'localhost' (using password: YES) Previous Comments: ------------------------------------------------------------------------ [2018-09-04 13:29:41] nikic@php.net @johannes: Maybe I misunderstood the issue. The way I'm reading this bug report is that PHP 7.2.8 *regressed* MySQL authentication for a case that was previously working correctly. That is, a MySQL setup that worked with PHP 7.2.7 no longer works with PHP 7.2.8. Is that wrong? ------------------------------------------------------------------------ [2018-09-04 09:33:54] johannes@php.net Reverting doesn't make a thing better. Root cause: MySQL 8.0 added a new authentication scheme and made it default. PHP builds without this patch can't use that scheme at all and have to switch to a different older, less secure, mechanism. The issues with this change are the dependencies. This new machanism requires OpenSSL and ext/hash to be available. Without those statically compiled in (we can't do proper runtime guessing for C symbols) we can't use them and have a compile-time decision to make. The proper fix would be to enforce OpenSSL and ext/Hash similar to ext/date. It's 2018 and basic security routines should be a thing users can rely on to be there ... Reverting this change means that nobody can use the new authentication mechanism. ------------------------------------------------------------------------ [2018-09-04 04:05:40] nikic@php.net I've reverted the MySQL auth changes via https://github.com/php/php-src/commit/03740ef7dffcc80530a89ebde3ccf5464f7f18e6 in all branches, which will hopefully resolve this issue. ------------------------------------------------------------------------ [2018-09-03 01:19:23] 104979058 at qq dot com Sorry, 7.3.0 beta 3 connection mysql 8 has been tested in detail. Need to change the configuration file, my.ini : Default_authentication_plugin=mysql_native_password Can you connect successfully.. Maybe this can help you. ------------------------------------------------------------------------ [2018-08-31 02:06:46] 104979058 at qq dot com 7.3.0beta3 mysqli Object ( [affected_rows] => 0 [client_info] => mysqlnd 5.0.12-dev - 20150407 - $Id: 401a40ebd5e281cf22215acdc170723a1519aaa9 $ [client_version] => 50012 [connect_errno] => 0 [connect_error] => [errno] => 0 [error] => [error_list] => Array ( ) 已经修正了的bug... ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at https://bugs.php.net/bug.php?id=76651 -- Edit this bug report at https://bugs.php.net/bug.php?id=76651&edit=1

« previous php.bugs (#216907) next »