SQLSTATE[HY000] [1045] 用户访问被拒绝

SQLSTATE[HY000] [1045] 用户访问被拒绝

我已经启动了我的第一个网站(正在开发中),该网站具有简单的身份验证结构。当我使用 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 上该特定用户的访问权限。要解决此问题,请使用以下命令:

  1. 进入 MySQL(注意:root这里是 MySQL 根目录,而不是 ubuntu 根目录 - 您也可以使用具有足够访问级别的其他用户):
$ mysql --user=root --password=root_password homestead
  1. 在 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 管理的网站上。

相关内容