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

Laravel跨主机执行迁移时出现root@pop-os访问权限拒绝问题

问题分析与解决

核心问题拆解

从错误信息能看出两个关键异常:

  1. 用户授权问题:Access denied for user 'root'@'pop-os' —— 这里的pop-os是你的Pop!_OS客户端机器的主机名,远程MariaDB服务器的root用户未被授权允许从该主机(或对应IP)访问目标数据库。
  2. 配置读取异常:SQL语句中table_schema = 92.168.2.166 —— 正常应该是你的数据库名Laravel_db,说明Laravel可能缓存了错误的配置,或者.env文件读取异常。

解决步骤

1. 清除Laravel配置缓存

Laravel会缓存配置文件,若之前修改过.env但未清除缓存,可能导致配置读取错误:

php artisan config:clear

2. 修复远程MariaDB的用户授权

登录远程MariaDB服务器(或用你能访问的方式登录),给root用户授权允许从你的Pop!_OS机器访问:

-- 替换成你的Pop!_OS机器的局域网IP(注意错误信息里的92是笔误,应为192)
GRANT ALL PRIVILEGES ON Laravel_db.* TO 'root'@'192.168.2.166' IDENTIFIED BY '你的数据库密码';

-- 或者直接通过主机名授权
GRANT ALL PRIVILEGES ON Laravel_db.* TO 'root'@'pop-os' IDENTIFIED BY '你的数据库密码';

-- 刷新权限使设置生效
FLUSH PRIVILEGES;

3. 验证配置正确性

  • 确认.env文件中DB_DATABASE的值确实是Laravel_db,而非IP或其他错误内容。
  • 可临时在Laravel项目中打印配置验证:
    在routes/web.php中添加:
    dd(env('DB_DATABASE'), env('DB_HOST'));
    
    访问该路由,确认输出的数据库名和主机IP与.env配置一致。

4. 重新执行迁移

完成上述步骤后,再次执行迁移命令:

php artisan migrate

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 14:45:33