php连接mysql报错:SQLSTATE[HY000] [2006] MySQL server has gone away
报错原因:
-
mysql 8.0默认加密方式为caching_sha2_password
-
mysql 8.0 以后 PASSWORD=PASSWORD('root') 命令无效,
修改密码需要以下命令:
ALTER USER root@localhost IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
客户端连接mysql出现plugin caching_sha2_password could not错误,主要因为MYSQL修改了加密方式,
而SQLlog或者native等客户端软件暂时不支持caching_sha2_password加密方式,需要通过以下命令修改:
ALTER USER root@localhost IDENTIFIED WITH mysql_native_password BY 'root';
以上只是修改密码以及mysql密码加密方式,修改后php 连接mysql 报错MySQL server has gone away,
此时需要在在my.cnf中[mysqld]下添加以下信息
[mysqld]
#设置mysql 8.0 的加密方式为 mysql_native_password (默认为:caching_sha2_password)
default_authentication_plugin=mysql_native_password