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

Laravel项目MySQL连接报错:Access denied for user ''@'localhost'求助

Laravel MySQL连接报错SQLSTATE[HY000] [1044]问题排查与解决

错误信息

SQLSTATE[HY000] [1044] Access denied for user ''@'localhost' to database 'database'

错误提示中用户名为空,是核心异常点。

当前环境信息

MySQL用户权限

用户名主机名密码全局权限授权权限
root127.0.0.1无ALL PRIVILEGES是

.env配置片段

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=database
DB_USERNAME=root
DB_PASSWORD=

database.php配置片段

'mysql' => [
    'driver' => 'mysql',
    'url' => env('DATABASE_URL'),
    'host' => env('DB_HOST', '127.0.0.1'),
    'port' => env('DB_PORT', '3306'),
    'database' => env('DB_DATABASE', 'forge'),
    'name' => env('DB_USERNAME', 'forge'),
    'password' => env('DB_PASSWORD', ''),
    'unix_socket' => env('DB_SOCKET', ''),
    'charset' => 'utf8mb4',
    'collation' => 'utf8mb4_unicode_ci',
    'prefix' => '',
    'prefix_indexes' => true,
    'strict' => true,
    'engine' => null,
    'options' => extension_loaded('pdo_mysql') ? array_filter([
        PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
    ]) : [],
],

测试验证

终端执行命令 mysql -u root -p -h 127.0.0.1 -P 3306 database,直接回车跳过密码输入,可成功连接数据库。已执行 php artisan config:clear 并重启服务器,问题仍未解决。

问题根源及修复方案

  • 问题本质:database.php的MySQL配置数组中,用户名对应的配置键错误。Laravel要求用户名的键为username,但当前配置写成了name,导致框架无法读取到正确的用户名参数,最终出现空用户名的连接错误。
  • 修复步骤:
    1. 打开config/database.php文件,定位到MySQL配置段中的'name' => env('DB_USERNAME', 'forge'),这一行。
    2. 将键名name修改为username,修改后该行应为:'username' => env('DB_USERNAME', 'forge'),。
    3. 执行命令 php artisan config:clear 清除配置缓存,确保新配置生效。
    4. 重启服务器(若使用Laravel内置开发服务器,直接终止后重新启动即可)。

修改完成后,Laravel即可正确读取.env中的DB_USERNAME配置,使用root用户正常连接数据库。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 18:18:19