介绍
这篇文章将为大家详细讲解有关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不兼容怎么办