php連接mysql8.0報錯MySQLserverhasgoneaway

  • 2019 年 12 月 18 日
  • 筆記

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