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

Laravel Sail中无法以MySQL root用户身份登录的问题

Laravel Sail MySQL 登录权限问题解决方法

问题描述

尝试给sail MySQL用户授予权限,但在主机项目目录执行sail mysql -u root -p登录后,实际身份仍是sail用户,执行授权命令时报错:

ERROR 1045 (28000): Access denied for user 'sail'@'%' (using password: YES)

执行SELECT CURRENT_USER();验证身份,返回结果确认为sail用户:

+----------------+
| CURRENT_USER() |
+----------------+
| sail@%         |
+----------------+
1 row in set (0.00 sec)

另外尝试sail root-shell后登录MySQL,遇到socket连接错误:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

注:PHPStorm数据库浏览器可正常以root身份连接MySQL。

解决方法

方法1:显式指定root连接参数

Laravel Sail的mysql命令默认会读取sail用户的环境变量,需要手动指定主机和root密码(密码取自项目根目录.env文件中的DB_PASSWORD):

sail mysql -u root -p --host=127.0.0.1

输入密码登录后,执行授权命令:

GRANT ALL PRIVILEGES ON *.* TO 'sail'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

方法2:直接进入MySQL容器操作

  1. 先查看MySQL容器名称:
docker ps

找到类似laravel.test-mysql-1的容器名称
2. 进入容器内部的MySQL终端,直接用root身份登录:

docker exec -it [容器名称] mysql -u root -p

输入.env中的DB_PASSWORD后,即可正常执行权限操作。

方法3:校验配置并重启Sail

确认项目根目录.env文件的数据库配置正确:

DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=sail
DB_PASSWORD=your_password_here

然后重启Sail服务:

sail down -v
sail up -d

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 00:58:16