php连接mysql数据库报错

使用PHP连接MySql数据库时,发现如下错误信息:

The server requested authentication method unknown to the client
原因

因为mysql8升级了密码的验证方式 caching_sha2_password, 之前一直是mysql_native_password方式,而php都升级到7.2+不支持caching_sha2_password。

解决方法
  1. 修改配置文件

    windows:找到my.ini文件,Linux:找到my.cnf文件

    然后在其中加入下面这一行配置

    default_authentication_plugin=mysql_native_password
    
  2. 重启mysql

    windows可以重启myslq服务,或者利用命令进行重启。停止命令:net stop MySQL 启动命令:net start MySQL

  3. 然后执行下面的sql

    use mysql;
    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
    FLUSH PRIVILEGES;
    

    其中mysql_native_password BY 'root'中的root,是新密码,可以自行设置。

  4. 重新登录mysql,php连接配置上新的密码,重新尝试连接。


php连接mysql数据库报错
https://www.zhaojun.inkhttps://www.zhaojun.ink/archives/php-connect-mysql
作者
卑微幻想家
发布于
2023-02-17
许可协议