php连接数据库失败(并提示:mysqli(): The server requested authentication method unknown to the client)

提示: Warning: mysqli::mysqli(): The server requested authentication method unknown to the client

问题:
在php连接数据库这一块,我遇到了以上困难,尝试了各种方法,还是找不到问题所在,终于,在凌晨0.00时我找到了问题所在,看到了以下字眼,真的很开心,并且也执行了我的第一次去查询,总结出一句话:没什么是你能做却办不到的!所以,下面是我今天的一些总结,也希望能帮助到你?

在这里插入图片描述

首先,遇到这些问题先不要慌,认真看一下是什么意思,好像我,实在读不出来它的意思,就找百度翻译,看下是什么错误,好对症下药!

以下谢谢百度翻译提供帮助:
在这里插入图片描述

由于是菜鸟新手,也不知道什么是身份验证,还以为是我localhost地址有问题,修改成127.0.0.1,但还是这个问题,那时我就郁闷了,上网查了一下,说是SQL中password里面配置有问题,然后,密码太过于简单,?鉴于什么都要试下的心态,我还是跟着步骤做了

在MySQL的目录下新建一个my.ini文件(注意后缀名是ini),
打开文件添加:default_authentication_plugin= mysql_native_password,

然后在win+r输入cmd进入命令行模式
cd D:\Dsware\mysql\bin (把MySQL安装的路径输入);
再mysql -u root -p回车,输入密码:

ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘123456’;
(BY后面输入新的密码,记得把分号带上,然后会报错)
FLUSH PRIVILEGES;

报这样的错?

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near。。。。

【处于好奇心,于是又查了一下这两句话的意思:分别是
更改用户’root’@'localhost’的mysql\u本机密码;
刷新权限;】

全部都设置完成后,win+R输入:services.msc,进入本地服务,找到MySQL重启动该服务;

然后,不知道是不是我个人电脑原因,重启动该服务时,就提示电脑部分SQL业务暂停,打开管理员权限进入MySQL根目录输入命令符:net start MySQL启动不了服务,
于是,理智选择卸载重来,重启动成功后:

Browser还是显示:Warning: mysqli::mysqli(): The server requested authentication method unknown to the client!!!!

然后,以上操作白搭后,越来越感觉是请求身份那里有问题,于是,找百度搜身份验证;

在这里插入图片描述

在某一个搜索站点下,我看到了一位网友的评论:
出现这种问题是因为php mysqli扩展不支持新的caching_sha2身份验证功能,要等新的版本;

还有在某个站点发现一篇文章大概讲诉:
MySQL5版本可以兼容php mysqli扩展caching_sha2身份验证功能

于是,卸载掉MySQL8.0版本,找MySQL5版本下载:最后我选择了mysql-5.7.19-winx64,同时要说明的是:我的PHP版本为7.1.10;

下载地址:https://dev.mysql.com/downloads/mysql/

找到对应的版本下载,下载完毕后,解压到你想要放置的路径下,最好不要放置在中文名目录和有两个字母间有空格的目录下,方便后面操作!!!

解压后重复mysql安装过程;(至于安装过程,这里就不再一一说明,可网上搜一搜)
看一下数据库,输入show databases;

查看php是否已经连上数据库:

<?php 
$connnect=mysqli_connect('127.0.0.1','root','123456','demo');
//查看扩展:phpinfo();
if (!$connnect) {
	exit('<h1>数据库连接失败</h1>');
}else{
	exit('<h1>数据库连接成功</h1>');
}
 ?>

完成以上操作,php连接数据库成功。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值