Laravel报SQLSTATE[HY000][1045] root用户数据库访问被拒绝求助
Laravel MySQL 连接1045报错排查方案
问题背景
已在相关技术论坛检索过同类问题的解决方案,始终未能自行修复。
当前配置
.env 文件数据库配置项
DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=channelable DB_USERNAME=root DB_PASSWORD=root
config/database.php 内 MySQL 连接配置
'mysql' => [ 'driver' => 'mysql', 'url' => env('DATABASE_URL'), 'host' => env('DB_HOST', '127.0.0.1'), 'port' => env('DB_PORT', '3306'), 'database' => env('DB_DATABASE', 'channelable'), 'username' => env('DB_USERNAME', 'root'), 'password' => env('DB_PASSWORD', 'root'), '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'), ]) : [], ],
已执行操作与报错信息
已确认数据库用户名、密码为root,执行过以下命令清除配置与应用缓存:
php artisan config:clear php artisan cache:clear
仍抛出如下错误:
SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: YES) (SQL: select * from information_schema.tables where table_schema = channelable and table_name = migrations and table_type = 'BASE TABLE')
排查与解决步骤
按优先级从高到低逐一验证:
- 直接通过命令行验证账号有效性:执行
mysql -u root -p,输入密码root,确认能否正常登录。如果命令行同样登录失败,说明root账号密码与预期不符,直接重置root密码即可 - 处理host匹配差异:当前配置
DB_HOST=127.0.0.1,但报错显示连接身份为'root'@'localhost'。MySQL中127.0.0.1走TCP协议连接,localhost走Unix Socket连接,两者是独立的权限主体。直接将.env中DB_HOST改为localhost,重新清缓存重试;也可以登录MySQL后执行授权语句,给root@localhost开放channelable库的全部权限 - 重建配置缓存:除已执行的清理命令外,额外执行
php artisan config:cache重新生成配置缓存文件,避免旧配置残留被加载 - 验证端口对应服务:执行端口监听检查命令,Linux环境用
netstat -anp | grep 3306,Windows环境用netstat -ano | findstr 3306,确认3306端口是目标MySQL实例在监听,排除Docker容器内MySQL、其他预装MariaDB/MySQL实例占用端口导致连错服务的问题 - 适配集成环境默认配置:如果使用XAMPP、WAMP、MAMP等集成环境,默认root账号密码为空,直接将
DB_PASSWORD的值留空,清缓存后重试 - 适配MySQL8.0认证规则:MySQL8.0+版本默认使用
caching_sha2_password认证插件,部分旧版本PDO扩展不支持该认证方式,会被判定为密码错误。登录MySQL后将root账号的认证插件改为mysql_native_password即可 - 排查环境变量覆盖:确认运行环境没有设置全局的
DB_*系列系统环境变量,系统环境变量优先级高于.env文件配置,会导致.env内的配置不生效
内容的提问来源于stack exchange,提问作者Shibbir
相关产品推荐
相关产品推荐

