You need to enable JavaScript to run this app. Laravel/Lumen部署后出现SQLSTATE[HY000] [2054]认证错误如何解决?
优惠活动
大模型
产品
解决方案
定价
更多

Laravel/Lumen部署后出现SQLSTATE[HY000] [2054]认证错误如何解决?

解决方法

根本原因

SQLSTATE[HY000] [2054]报错和你编写的where查询逻辑无关,是服务器环境兼容性问题:MySQL 8.0及以上版本默认使用caching_sha2_password作为身份认证插件,而服务器上部署的PHP的PDO MySQL扩展版本较低,不支持该认证方式,所以只要触发数据库连接的操作都会报错,无数据库操作的静态路由自然可以正常访问。

可行解决方案

  • 方案一:调整MySQL用户认证规则(操作最简单,兼容性最好)
    登录服务器的MySQL命令行终端,依次执行以下命令,注意替换占位符为你的实际数据库配置:
    -- 修改指定用户的认证方式为兼容旧版扩展的mysql_native_password
    ALTER USER '你的数据库用户名'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的数据库用户密码';
    -- 刷新权限使配置生效
    FLUSH PRIVILEGES;
    
    执行完成后重启MySQL服务,再重新测试接口即可。
  • 方案二:升级服务器PHP扩展
    若需要保留MySQL默认的caching_sha2_password认证规则,可将服务器PHP版本升级到7.4及以上,同时将pdo_mysql扩展更新到支持该认证方式的版本,升级完成后重启PHP-FPM服务即可生效。

验证方式

配置修改完成后,可在项目根目录执行artisan命令快速验证:

php artisan tinker
# 进入交互界面后执行测试查询
Season::where('status','active')->first();

若正常返回数据则说明问题已解决。

内容的提问来源于stack exchange,提问作者Sermed mayi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.09 00:27:04