php不兼容怎么办

  介绍

这篇文章将为大家详细讲解有关php不兼容怎么办,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

php不兼容的解决办法:1、更改”“my . cnf中所做来指定字符集;2,通过“改变用户& # 39;根# 39;@ # 39;% & # 39;认同…”方式更新已存在的账号密码;2,重新安装Mysql8.0即可。

<强> PHP与Mysql8不兼容问题汇总

在安装Mysql8.0之后,需要跟我们原有的PHP进行协同工作,然而原先与Mysql5.1能够很好协同的代码,突然报错,看来需要做一些额外的工作。

报错:PDO:: __construct ():, Server  sent  charset  (255), unknown 用,客户只请,report 用,开发商

根据网上资料显示,是由于Mysql8.0将默认的字符集改为了utfmb4,因此和客户端(不仅仅是PHP)的通信无法识别,我们需要更来改my . cnf中所做指定字符集。

[客户]   default-character-set=utf8   (mysql)   default-character-set=utf8   (mysqld)   collation-server =utf8_unicode_ci   character-set-server =, utf8   报错:PDO:: __construct ():,, server  requested  authentication  method  unknown 用,client  [caching_sha2_password]

根据网上资料显示,是由于用户身份认证的加密方式不兼容导致的,mysql8.0中默认方式为caching_sha2_password,引起老版本兼容性问题,老版本加密方式为mysql_native_password。

我们可以指定加密方式来设置:

#,新建用户,使用旧版加密方式设置密码   CREATE  USER  username@localhost  identified  with  mysql_native_password  by  & # 39;密码# 39;;   #,更新已存在的账号密码加密方式   alter  user  & # 39;根# 39;@ # 39;% & # 39;,identified  with  mysql_native_password  by  & # 39;密码# 39;;

但更好的方式是加一行默认配置:

(mysqld)   default_authentication_plugin =mysql_native_password   报错:Access  denied  for  user  & # 39;根# 39;@ # 39;localhost # 39;, (using 密码:,是的)   mysql>, GRANT  ALL  PRIVILEGES 提醒*。*,用& # 39;oss # 39; @ # % & # 39;;;   ERROR  1045, (28000):, Access  denied  for  user  & # 39;根# 39;@ # 39;localhost # 39;, (using 密码:,YES)

在我给其他用户加权限的时候,报错无权限,原因是我一不小心删掉了根身份的用户,虽然网上有很多的文档解决这个问题,但是我重建后的根用户虽然拥有Grant_priv: Y但依然无法成功分配权限,我很头疼。

<强>解决方法:重装,参考文章安装Mysql8.0。

关于“php不兼容怎么办”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看的到。

php不兼容怎么办