我想按照这个课程设置和学习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设置?
您没有名为“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=
使用localhost
而不是127.0.0.1
,你很高兴去!
我的plesk ubuntu 18.04远程服务器遇到了同样的问题。在.env文件中,在数据库密码和用户名周围加上双引号,然后运行php artisan config:clear
和php artisan cache:clear
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=dbname
DB_USERNAME="xyz"
DB_PASSWORD="123"
我之前从未遇到过这个问题。
如果您使用的是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
我有情况当服务器没有看到更新.env文件和php artisan cache:clear
没有帮助,但只是需要刷新服务器php artisan serve
我遇到过同样的问题。最终对我有用的是表演Method 2 on this page。
通过我的努力,我了解到有4个不同的地方可以为XAMPP附带的MySQL安装的root
设置密码。仅在这些地方中只有1个或2个设置密码是不够的。这就是我能够执行初始迁移所做的事情:
.env
文件中,在DB_...
部分。localhost:[your Apache port]/phpmyadmin
中,通过用户帐户 - > root - >编辑权限 - >更改密码。localhost:[your Apache port]/phpmyadmin
,通过Method 2 on this page中描述的方法。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.
当我遇到这个问题时,那是因为我忘记了我的本地环境是在3306以外的端口上运行mysql。对我来说,它是3307.如果你使用的是XAMPP,我会查看你正在使用的端口并确保它匹配你的.env文件。
第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”迁移表
如果您在MAMP,请检查您的端口号。通常,它应该如下所示:
Host localhost
Port 8889
User root
Password root
Socket /Applications/MAMP/tmp/mysql/mysql.sock
如果您以前使用不同的用户名和密码在phpmyadmin上创建数据库,则您的本地主机帐户需要新用户才能拥有不同的密码。我尝试了以前用过的用户名和密码,这解决了我的问题。