php7.4 MySQL server has gone away 连接MySQL认证失败

 PHP进阶  2019-12-01  admin  319  430

php7.4 连接MySQL出现MySQL server has gone away等不能连接认证的错误。

这是因为最初mysql8的默认密码加密方式是caching_sha2_password,PHP7.4连接mysql的加密方式也为caching_sha2_password。

为了兼容旧版的客户端,还有在主从复制等问题,mysql8的认证方式改回了mysql_native_password。如果使用PHP7.4的情况下,这里就会导致连接认证报错,因为php7.4是caching_sha2_password加密方式。

不改配置的情况下,可以使用下面的方式更改mysql8的加密方式,为root用户更改密码:

USE mysql;
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
FLUSH PRIVILEGES;