Edit report at https://bugs.php.net/bug.php?id=76651&edit=1
ID: 76651
Updated by: nikic@php.net
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:
@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?
Previous Comments:
------------------------------------------------------------------------
[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...
------------------------------------------------------------------------
[2018-08-27 18:55:06] no at mail dot here
first236108, root is already set out of the box to use the caching_sha2_password authentication
provider. Anyway, messing with MySQL settings does not fix the PHP bug introduced in PHP 7.2.8. We
just have to wait until the good folks from the PHP team figure what they messed up and fix.
------------------------------------------------------------------------
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