iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client
  • 978
分享到

SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client

摘要

SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client

问题: 接手迁移某环境PHP代码及数据,源库及目标库版本Mysql8,应用框架为thinkphp5 迁移后访问登录报“500 Internal Server Error” 打开thinkphp调试模式: vim config/app.php ... return [ // 应用调试模式 " app_debug " => true , // 应用Trace "app_trace" => false, ... 刷新页面点击登录F12观察到如下错误 sqlSTATE[HY000] [2054] The server requested authentication method unknown to the client   查询发现这个错误是因为mysql 8默认使用了新的密码验证插件:caching_sha2_passWord,而之前的PHP版本中所带的mysqlnd无法支持这种验证。 这里出现这个问题是两个环境在安装时所选用的密码验证方式不同造成的   解决办法: 一、升级PHP支持MySQL 8的新验证插件 PHP 7.2.8和PHP 7.1.20已经可以支持caching_sha2_password,可直接连接MySQL 8。 建议使用PHP 7.4.3及以上版本 https://bugs.php.net/bug.php?id=79011 Https://bugs.php.net/bug.php?id=79275 截止PHP 7.0.31和PHP 5.6.37还无法支持caching_sha2_password,不知道后续版本是否会做出支持。 可以通过phpinfo()函数了解当前安装的PHP是否支持caching_sha2_password。     二、 如不能升级PHP,可在MySQL 8中创建(或修改)使用caching_sha2_password插件的用户,现有的代码及配置无需变动。 1、在 CREATE USER 时,使用IDENTIFIED WITH xxx_plugin BY ‘password‘指定验证插件: CREATE USER ‘native‘@‘localhost‘ IDENTIFIED WITH mysql_native_password BY ‘password@!2#4‘; 2、使用 ALTER USER 修改已有用户的验证插件: ALTER USER ‘native‘@‘localhost‘ IDENTIFIED WITH mysql_native_password; ALTER USER ‘native‘@‘localhost‘ IDENTIFIED WITH mysql_native_password BY ‘new_password‘; 采用前一种方式,用户的密码将被清除;后一种方式将为用户设置新的密码。 3、/etc/my.cnf配置文件中,有一行: # default-authentication-plugin = mysql_native_password 删除开头“#”,重启mysql服务,此后创建的用户均默认使用mysql_native_password。 4、MySQL安装完成,未启动情况下修改/etc/my.cnf上述配置,启动后创建的用户默认使用mysql_native_password插件。
您可能感兴趣的文档:

--结束END--

本文标题: SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client

本文链接: https://www.lsjlt.com/news/8215.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作