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

Laravel部署后出现1045数据库访问拒绝错误咨询

解决Laravel部署后数据库连接使用homestead凭证的问题

这大概率是Laravel的配置缓存或者.env文件未被正确加载导致的,我之前也碰到过类似情况,给你几个排查和解决的步骤:

  • 检查服务器上的.env文件
    先确认开发服务器上的.env文件确实包含了Cloudways的数据库凭证,而不是本地的homestead配置。有时候上传代码时,可能因为.env在.gitignore里没被上传,或者服务器上遗留了旧的.env文件,一定要确保服务器上的.env内容是正确的。

  • 清除Laravel配置缓存
    Laravel在生产/开发环境会自动缓存配置文件,即使你修改了.env,缓存没清空的话,应用还是会用旧的配置。登录服务器,进入项目根目录,执行以下命令:

    php artisan config:clear
    php artisan cache:clear
    php artisan route:clear # 如果用了路由缓存也一起清掉
    

    这几个命令会清除所有缓存的配置和数据,让应用重新读取.env里的最新配置。

  • 检查config/database.php的默认值
    打开项目里的config/database.php文件,看看mysql连接的配置是不是这样的:

    'mysql' => [
        'driver' => 'mysql',
        'host' => env('DB_HOST', '127.0.0.1'),
        'database' => env('DB_DATABASE', 'homestead'),
        'username' => env('DB_USERNAME', 'homestead'),
        'password' => env('DB_PASSWORD', 'secret'),
        // 其他配置...
    ]
    

    如果.env文件没被正确读取,Laravel会使用这里的默认值(也就是homestead相关的)。所以要确保.env里的键名和env()函数的第一个参数完全一致,比如DB_HOST、DB_USERNAME这些不能写错。

  • 检查.env文件的权限
    服务器上的.env文件需要让web服务器用户(比如www-data、nginx)有读取权限。可以执行以下命令设置正确的权限:

    chmod 644 .env
    chown www-data:www-data .env # 根据你的服务器用户调整
    

    权限不对的话,Laravel可能无法读取.env的内容,从而 fallback 到默认配置。

  • 检查服务器环境变量
    有些托管平台(包括Cloudways)可能会在面板里设置全局环境变量,如果这些变量和你的.env里的DB配置冲突,会覆盖.env的内容。可以登录Cloudways面板,检查有没有设置DB_HOST、DB_USERNAME这类环境变量,如果有的话,要么改成正确的Cloudways凭证,要么禁用它们,让应用读取.env的配置。

按照这些步骤排查下来,应该就能解决问题了。最常见的情况就是配置缓存没清,或者.env文件没正确上传/读取。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:15:44