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

在Godaddy服务器执行迁移时遇SQLSTATE[28000] [1045]权限拒绝问题求助

排查GoDaddy服务器上MySQL权限错误的常见原因

你遇到的SQLSTATE[28000] [1045] Access denied错误,在GoDaddy环境里除了基础的凭据错误外,还有几个容易被忽略的点,我帮你梳理一下:

  • 数据库用户的主机授权不匹配
    错误信息里显示用户table从ip-444-444-444-41.ip.secureserver.net发起的连接被拒绝,这说明你创建的用户可能只授权了localhost或者其他IP/主机名访问。登录MySQL控制台,执行以下命令检查并修正:

    -- 查看当前用户的授权范围
    SHOW GRANTS FOR 'table'@'ip-444-444-444-41.ip.secureserver.net';
    -- 如果没有授权,添加对应主机的权限
    GRANT ALL PRIVILEGES ON db.* TO 'table'@'ip-444-444-444-41.ip.secureserver.net';
    -- 刷新权限使更改生效
    FLUSH PRIVILEGES;
    

    测试阶段也可以用%临时允许所有主机访问(不推荐生产环境):GRANT ALL PRIVILEGES ON db.* TO 'table'@'%';

  • 环境变量未正确加载或生效
    即使你修改了.env文件,服务器的应用进程(比如PHP-FPM、Nginx,或者你的框架服务)可能还在使用旧的缓存配置。以Laravel为例,需要清除配置缓存:

    php artisan config:clear
    php artisan cache:clear
    

    如果是其他应用,尝试重启对应的服务,确保新的环境变量被读取。

  • GoDaddy数据库主机地址不正确
    GoDaddy的数据库通常不会使用你自己的域名作为连接地址,而是提供专门的数据库主机(比如类似dbXXXXXX.hosting-data.io的格式)。登录GoDaddy控制面板,找到数据库管理页面,确认实际的DB_HOST地址,替换你当前配置的example.com。

  • 密码包含特殊字符导致解析失败
    如果你的DB_PASSWORD包含!@#$%^&*()这类特殊字符,直接写在.env文件里可能会被解析错误。尝试用双引号包裹密码:

    DB_PASSWORD="password-with-special-chars"
    
  • 用户权限未正确赋予目标数据库
    确认你给用户table赋予的是目标数据库db的权限,而不是其他数据库。执行SHOW GRANTS FOR 'table'@'ip-444-444-444-41.ip.secureserver.net';,检查输出里是否有GRANT ALL PRIVILEGES ON db.*的条目,如果没有,重新执行授权语句并刷新权限。

  • GoDaddy防火墙/安全组限制
    GoDaddy的服务器默认可能会限制数据库端口(3306)的访问范围。登录GoDaddy控制面板,检查安全组或防火墙设置,确保你的应用服务器IP被允许访问数据库服务器的3306端口。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 03:52:37