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

Laravel 10项目迁移至新系统/目录的最佳实践及数据库问题排查

Laravel 10迁移后数据库认证失败解决方案

核心问题定位

错误提示中仍出现旧数据库用户OLDUSER和旧库名OLDUSER_dbname,说明系统未读取到你修改后的.env配置,而非项目根路径配置问题(Laravel迁移路径一般无需额外调整,除非存在硬编码路径)。

解决步骤

  • 强制清除Laravel配置缓存
    Laravel会缓存环境配置,修改.env后必须执行命令清除缓存:

    php artisan config:clear
    

    若后续需要缓存配置(生产环境建议),可执行php artisan config:cache。

  • 确认.env文件有效性
    检查新项目根目录(/var/www/html/MYPROJECT)下的.env文件,确保数据库配置项正确:

    DB_CONNECTION=mysql
    DB_HOST=localhost
    DB_PORT=3306
    DB_DATABASE=你的新库名
    DB_USERNAME=你的新用户名
    DB_PASSWORD=你的新密码
    

    同时确保文件权限正确(如设置为644,归属用户为www-data),避免Web服务器或PHP进程无法读取。

  • 排查硬编码配置
    打开config/database.php,检查是否存在硬编码的旧数据库信息:

    'mysql' => [
        // 注意这里的默认值,若env读取失败会使用第二个参数
        'database' => env('DB_DATABASE', 'OLDUSER_dbname'),
        'username' => env('DB_USERNAME', 'OLDUSER'),
    ]
    

    若存在,将默认值改为新的数据库信息或直接移除默认参数(仅保留env()调用)。

  • 重启相关服务

    • 若使用PHP-FPM,重启服务:
      systemctl restart php-fpm # 根据你的PHP版本调整,如php8.2-fpm
      
    • 重启Web服务器(Nginx/Apache):
      systemctl restart nginx
      # 或
      systemctl restart apache2
      
    • 若使用php artisan serve,需终止原有进程后重新启动。
  • 验证数据库用户权限
    用命令行测试新用户是否能正常连接数据库:

    mysql -u 新用户名 -p 新库名
    

    若连接失败,需在MySQL中为新用户授权:

    GRANT ALL PRIVILEGES ON 新库名.* TO '新用户名'@'localhost' IDENTIFIED BY '新密码';
    FLUSH PRIVILEGES;
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 07:47:19