You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel应用出现SQLSTATE[42000] [1044]权限拒绝错误求助

解决Laravel连接cPanel数据库的1044权限错误

1. 确认用户与数据库的关联权限

登录cPanel,打开MySQL数据库工具:

  • 找到目标数据库cobaognm_cobary,检查下方「已关联用户」列表是否包含cobaognm_cobary
  • 若未关联,点击「添加用户到数据库」,选中对应用户和数据库,勾选所有权限(测试阶段全选更稳妥),完成保存

2. 验证.env文件的准确性

直接在服务器上查看Laravel项目根目录的.env文件(避免本地截图与服务器文件不一致):

  • 确认以下字段与cPanel配置完全匹配:
    DB_DATABASE=cobaognm_cobary
    DB_USERNAME=cobaognm_cobary
    DB_PASSWORD=你的数据库密码
    DB_HOST=localhost
    
  • 注意:cPanel数据库用户名带主机前缀(如cobaognm_),不要遗漏;密码避免含特殊字符(测试时可先用简单密码排除转义问题)

3. 清除Laravel配置缓存

Laravel会缓存配置,修改.env后可能仍用旧配置,执行以下命令:

php artisan config:clear
php artisan cache:clear

若共享主机无SSH权限,直接删除项目根目录bootstrap/cache下的所有文件

4. 直接测试数据库连接

新增临时路由,跳过框架配置直接测试连接:

Route::get('/test-db', function () {
    try {
        DB::connection()->getPdo();
        return "数据库连接成功!";
    } catch (\Exception $e) {
        die("连接失败: " . $e->getMessage());
    }
});

访问该路由,查看是否返回更具体的错误信息

5. 检查数据库主机设置

部分cPanel主机不支持localhost,需使用具体数据库IP或主机名:

  • 在cPanel「MySQL数据库」页面顶部找到「数据库服务器」信息,将DB_HOST替换为对应地址(如mysql.yourdomain.com)

6. 确认用户的主机限制

cPanel创建用户时,默认主机可能为localhost,部分主机强制限制连接IP:

  • 进入「MySQL数据库」,找到用户cobaognm_cobary,点击「修改用户」,将「主机」改为%(允许所有主机)或服务器对应IP测试

若以上步骤无效,联系主机提供商技术支持,检查MySQL权限表配置或服务器端权限限制

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 10:40:56