php不兼容代码查找,php不兼容怎么办

php不兼容怎么办

发布时间:2021-02-07 09:36:35

来源:亿速云

阅读:81

作者:小新

这篇文章将为大家详细讲解有关php不兼容怎么办,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。php不兼容的解决办法:1、更改“my.cnf”来指定字符集;2、通过“alter user 'root'@'%' identified with...”方式更新已存在的账号密码;2、重新安装Mysql8.0即可。

PHP与Mysql8不兼容问题汇总

在安装Mysql8.0之后,需要跟我们原有的PHP进行协同工作,然而原先与Mysql5.1能够很好协同的代码,突然报错,看来需要做一些额外的工作。报错:PDO::__construct(): Server sent charset (255) unknown to the client. Please, report to the developers

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

default-character-set=utf8

[mysql]

default-character-set=utf8

[mysqld]

collation-server = utf8_unicode_ci

character-set-server = utf8

报错:PDO::__construct(): The server requested authentication method unknown to the client [caching_sha2_password]

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

我们可以指定加密方式来设置:# 新建用户,使用旧版加密方式设置密码

CREATE USER username@localhost identified with mysql_native_password by 'password';

# 更新已存在的账号密码加密方式

alter user 'root'@'%' identified with mysql_native_password by 'password';

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

default_authentication_plugin = mysql_native_password

报错:Access denied for user 'root'@'localhost' (using password: YES)

mysql> GRANT ALL PRIVILEGES ON *.* TO 'oss'@'%';

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

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

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值