php artisan migrate - SQLSTATE [HY000] [1045]访问被拒绝用户'laravel'@'localhost'

问题描述 投票:3回答:10

我想按照这个课程设置和学习laravel:https://laracasts.com/series/laravel-from-scratch-2017/episodes/4

当我尝试使用命令php artisan migrate时,我收到此错误:

[Illuminate\Database\QueryException]                                                                                                        
  SQLSTATE[HY000] [1045] Access denied for user 'laravel'@'localhost' (using password: NO) (SQL: select * from information_schema.tables whe  
  re table_schema = laravel and table_name = migrations)

[PDOException]                                                                            
  SQLSTATE[HY000] [1045] Access denied for user 'laravel'@'localhost' (using password: NO)

试图寻找答案,我想我可能会对.env文件进行一些更改,但不知道是什么,到目前为止没有任何工作。

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=laravel
DB_PASSWORD=

我在视频中使用Ubuntu 16.04而不是Mac OS X,所以我想知道我该怎么办?有没有我没做过的mysql设置?

php laravel laravel-5.4
10个回答
6
投票

您没有名为“laravel”的用户。您应该将DB_USERNAME更改为您实际用于访问数据库的DB_USERNAME。默认情况下它通常是root,因此.env中的更改应该是

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=

0
投票

使用localhost而不是127.0.0.1,你很高兴去!


4
投票

我的plesk ubuntu 18.04远程服务器遇到了同样的问题。在.env文件中,在数据库密码和用户名周围加上双引号,然后运行php artisan config:clearphp artisan cache:clear

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=dbname
DB_USERNAME="xyz"    
DB_PASSWORD="123"

我之前从未遇到过这个问题。


2
投票

如果您使用的是MAMP和默认的root用户名/ pw,则.env文件数据库配置应使用'localhost'而不是127.0.0.1,并使用'root'作为用户名和密码:

DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=root

2
投票

我有情况当服务器没有看到更新.env文件和php artisan cache:clear没有帮助,但只是需要刷新服务器php artisan serve


2
投票

我遇到过同样的问题。最终对我有用的是表演Method 2 on this page

通过我的努力,我了解到有4个不同的地方可以为XAMPP附带的MySQL安装的root设置密码。仅在这些地方中只有1个或2个设置密码是不够的。这就是我能够执行初始迁移所做的事情:

  1. 在Laravel .env文件中,在DB_...部分。
  2. localhost:[your Apache port]/phpmyadmin中,通过用户帐户 - > root - >编辑权限 - >更改密码。
  3. localhost:[your Apache port]/phpmyadmin,通过Method 2 on this page中描述的方法。
  4. 在你的config.inc.php文件中,对我来说(在MacOS上)是在/Applications/XAMPP/xamppfiles/phpmyadmin/config.inc.php。这种方法也在Method 2 on this page中描述。

然后重启MySQL和您的Web(Apache)服务器。

请注意,在成功协调密码并再次尝试迁移之后,您可能会收到与Access Denied密码错误几乎相同的错误输出。但是,这是与字符串长度相关的不同错误。 See here for how to fix that issue.


1
投票

当我遇到这个问题时,那是因为我忘记了我的本地环境是在3306以外的端口上运行mysql。对我来说,它是3307.如果你使用的是XAMPP,我会查看你正在使用的端口并确保它匹配你的.env文件。


1
投票

第1步:在phpmyadmin中添加新用户。例如:username-xyz,password-123

第2步:创建一个新数据库,例如:dbname

step3:像这样更新你的.env文件:

    DB_CONNECTION=mysql
    DB_HOST=127.0.0.1
    DB_PORT=3306
    DB_DATABASE=dbname
    DB_USERNAME=xyz    
    DB_PASSWORD=123

第4步:现在清除你的缓存“php artisan clear:cache”

第5步:最后尝试使用“php artisan migrate”迁移表


1
投票

如果您在MAMP,请检查您的端口号。通常,它应该如下所示:

Host    localhost
Port    8889
User    root
Password    root
Socket  /Applications/MAMP/tmp/mysql/mysql.sock

0
投票

如果您以前使用不同的用户名和密码在phpmyadmin上创建数据库,则您的本地主机帐户需要新用户才能拥有不同的密码。我尝试了以前用过的用户名和密码,这解决了我的问题。

© www.soinside.com 2019 - 2024. All rights reserved.