mysqli_connect函数连接MySQL80的问题解决

前情提要:由于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

  

posted @ 2019-08-21 20:29  不靠谱设计  阅读(1130)  评论(0编辑  收藏  举报