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;