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

Laravel遇MySQL 1045错误:root本地访问被拒,同配置Joomla可正常运行

解决Laravel中SQLSTATE[HY000] [1045] Access Denied问题

我之前也碰到过类似的情况——明明同服务器的Joomla用一样的配置能正常跑,Laravel却死活连不上MySQL,给你几个实用的排查和解决步骤:

  • 仔细核对.env配置细节
    虽然你删过.env重建,但一定要确认这几个点:

    • DB_USERNAME=root 没有拼写错误
    • DB_PASSWORD= 这里必须是空值,不要加空格、引号或者任何字符(因为root没设密码)
    • 试试把DB_HOST=localhost改成DB_HOST=127.0.0.1,Laravel对localhost的解析有时候会走Unix socket,而Joomla可能用的是TCP/IP连接,换IP说不定能绕开这个差异
  • 彻底清理Laravel缓存
    有时候只清普通缓存不够,配置缓存里可能还存着之前错误的配置,运行这组命令彻底清空:

    php artisan config:clear
    php artisan cache:clear
    php artisan route:clear
    php artisan view:clear
    

    执行完后重启一下你的Web服务器(比如Nginx或Apache),确保新配置生效

  • 检查MySQL用户权限与连接方式
    登录MySQL(直接敲mysql -u root就能进,因为没密码),执行这条SQL查看root用户的权限条目:

    SELECT user, host FROM mysql.user WHERE user = 'root';
    

    确保存在root@localhost和root@127.0.0.1的条目。如果只有root@localhost,可以给root@127.0.0.1授权:

    GRANT ALL PRIVILEGES ON *.* TO 'root'@'127.0.0.1' WITH GRANT OPTION;
    FLUSH PRIVILEGES;
    

    之后把.env里的DB_HOST改成127.0.0.1再测试

  • 排查config/database.php的硬编码配置
    打开config/database.php,找到MySQL配置段,确保用户名和密码是通过env()函数读取的,而不是硬编码的:

    'username' => env('DB_USERNAME', 'root'),
    'password' => env('DB_PASSWORD', ''),
    

    如果这里直接写死了密码或者用户名,.env的设置会被覆盖,导致连接失败

  • 用原生PHP测试MySQL连接
    写个简单的测试脚本,排除Laravel框架的影响:

    <?php
    // 测试localhost连接
    $conn = mysqli_connect('localhost', 'root', '');
    if (!$conn) {
        echo "Localhost连接失败: " . mysqli_connect_error() . "\n";
    } else {
        echo "Localhost连接成功\n";
        mysqli_close($conn);
    }
    
    // 测试127.0.0.1连接
    $conn2 = mysqli_connect('127.0.0.1', 'root', '');
    if (!$conn2) {
        echo "127.0.0.1连接失败: " . mysqli_connect_error() . "\n";
    } else {
        echo "127.0.0.1连接成功\n";
        mysqli_close($conn2);
    }
    

    运行这个脚本,如果某个地址能成功连接,就把Laravel的DB_HOST改成对应的地址

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:20:49