php连接mysql报The server requested authentication method unknown to the client [caching_sha2_password]错

本文介绍了解决MySQL 8.x版本中php连接失败的问题,主要原因是新版本的MySQL改变了默认的密码验证方式。通过调整服务、配置文件、加密方式等步骤,最终实现了php与MySQL的正常连接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天在使用php连接MySQL时,提示无法连接,报错信息如下

mysqli_real_connect(): The server requested authentication method unknown to the client [sha256_password]  

于是乎求助各大搜索平台,后来发现才发现mysql从8.0.11版本起,不再像mysql5.7及以前版本那样,设置用户密码时默认的验证方式为caching_sha2_password,经过查阅相关的资料后查阅一些相关的资料后发现是由于新版本的mysql账号密码解锁机制不一致导致的。

解决方法:

1.找到mysql安装服务,用cmd(管理员身份打开不),删除mysql服务

2.新建一个mysql.ini配置文件

3.删除之前的data文件夹(如有重要数据记得备份),充满电中用

D:\mysql\bin>mysqld --initialize-insecure --user=mysql

新建一个data 文件

4.之后再重新安装mysql服务,并且为其绑定my.ini配置文件,cmd中用一下语句安装并绑定

D:\mysql\bin>mysqld --install "MySql80" --defaults-file="d:/mysql/my.ini"

5.安装成功并检验启动MySQL服务,在my.ini配置文件中加入

[mysqld]
default_authentication_plugin=mysql_native_password

使mysql加密方式改为旧式的

6.新建一个php测试文件

<?php
$conn=mysqli_connect('127.0.0.1','root','123456');
if (!$conn){
	exit('<h1>连接数据库失败</h1>');
	
}

echo "连接成功!";

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值