前情提要:由于MySQL8.0.*与MySQL5.*的加密方式发生了变化,所以会导致如下的错误出现:
error: mysqli_connect(): The server requested authentication method unknown to the client [caching_sha2_password]
至于采用什么加密了我们就不要去深究了,这就好比我们使用一个新产品,知道怎么用就行了,至于原理我们就不要深究了。
编程场景:
前提:假如我们需要用root用户连接数据库,密码假如为:root,host为:localhost
以前的方式连接数据库为:$connect=mysqli_connect("localhost","root","root");
结果在mysql8.0之后就会报上面的错:
解决办法:
情况1:
打开MySQL8.0的客户端,也就是Command line client,将下面的这句话复制,修改,粘贴,执行就ok了。
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root'
你要根据自己的用户名,密码,host进行修改再执行
情况2:
如果我们想创建一个新用户可以使用mysqli_connect进行如下操作,同样再Command line client客户端下执行:
CREATE USER 'user1'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
这样你就可以用user1且使用mysqli_connect连接数据库了!
文章连接:https://stackoverflow.com/questions/50026939/php-mysqli-connect-authentication-method-unknown-to-the-client-caching-sha2-pa
|