我已经启动了我的第一个网站(正在开发中),该网站具有简单的身份验证结构。当我使用 Homestead 运行我的网站时,数据库连接不起作用。实际上,我可以从终端或 mysql 工作台运行任何 mysql 命令,但是当我从浏览器(homestead.app)尝试时,我收到此错误:
SQLSTATE[HY000] [1045] Access denied for user 'homestead'@'localhost' (using password: YES)
这是我的.env
信息:
DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret
我更改了权限并重新启动了服务器,但结果还是一样!
答案1
这是因为您没有授予 localhost 上该特定用户的访问权限。要解决此问题,请使用以下命令:
- 进入 MySQL(注意:
root
这里是 MySQL 根目录,而不是 ubuntu 根目录 - 您也可以使用具有足够访问级别的其他用户):
$ mysql --user=root --password=root_password homestead
- 在 MySQL 中,像这样授予访问权限(在本例中,创建用户 'homestead'@'localhost' 并授予他对 DB 中所有内容的选择权限
homestead
):
CREATE USER 'homestead'@'localhost' IDENTIFIED BY 'secret'; GRANT SELECT PRIVILEGES ON homestead.* to 'homestead'@'localhost' IDENTIFIED BY 'secret';
请参阅MySQL 手册了解有关其他选项的更多信息。
话虽如此,您最好将此类问题发布在其他致力于 DB 管理的网站上。