我想在本课程后设置和学习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设置?
答案 0 :(得分:5)
您没有名为'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=
答案 1 :(得分: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 :(得分:2)
我遇到这样的情况,服务器没有看到更新的.env文件,php artisan cache:clear
并没有帮助,但是只是需要刷新服务器php artisan serve
答案 3 :(得分:2)
我有同样的问题。最终对我有用的是表演Method 2 on this page。
在我的奋斗中,我了解到可以在4个不同的地方为XAMPP随附的MySQL安装的root
设置密码。仅在这些位置中的1或2个位置设置密码是不够的。这是我执行初始迁移所要做的:
.env
文件的DB_...
部分中。localhost:[your Apache port]/phpmyadmin
中,通过用户帐户->根->编辑权限->更改密码。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)服务器。
请注意,在成功统一密码并再次尝试进行迁移之后,可能会收到错误输出,该错误输出看起来几乎与“拒绝访问密码”错误相同。但是,这是与字符串长度有关的不同错误。 See here for how to fix that issue.
答案 4 :(得分:2)
遇到同样的问题。使用
在mysql中更新了我的root密码ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '.....'
其中更新的密码没有特殊字符“#”。在.env文件中对其进行了更新。然后在终端中成功运行php artisan migrate
。
答案 5 :(得分:1)
当我遇到这个问题时,是因为我忘记了我的本地环境是在3306以外的端口上运行mysql。对我来说,它是3307.如果你使用的是XAMPP,我会查看你正在使用的端口和制作确保它与.env文件匹配。
答案 6 :(得分:1)
步骤1:在phpmyadmin中添加一个新用户。例如:username-xyz,密码123
第2步:创建一个新数据库,例如:dbname
第3步:像这样更新您的.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 migration”迁移表
答案 7 :(得分:1)
如果您在MAMP上,请同时检查您的端口号。通常,它应如下所示:
Host localhost
Port 8889
User root
Password root
Socket /Applications/MAMP/tmp/mysql/mysql.sock
答案 8 :(得分: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"
我以前从未遇到过这个问题。
答案 9 :(得分:1)
如果您的 DB_PASSWORD 包含 # 符号,则像这样将其括起来
DB_PASSWORD="dfdf#523"
答案 10 :(得分:0)
对我来说,问题是通过在用户和密码字段中添加 '' 来解决的,如下所示:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=someCoolDatabaseName
DB_USERNAME='someCoolUsername'
DB_PASSWORD='someCoolPassword'
确保您可以使用 mysql -u root -p
通过 CMD 登录并成功登录。
答案 11 :(得分:0)
如果设置了PHPMyAdmin密码,则需要在.ENV文件上进行类似的设置
DB_CONNECTION=mysql
DB_PORT=3306
DB_HOST=localhost
DB_DATABASE=db_name
DB_USERNAME=root
DB_PASSWORD=root
如果未设置密码,则可以将DB_PASSWORD保留为空白 DB_PASSWORD =
两者都仍然无法正常工作,然后它会缓存问题以进行修复,您需要删除位于bootstart / cache / config.php中的配置文件 那个php artisan config之后:缓存工作并自动生成相同的文件
答案 12 :(得分:0)
打开 config / database.php 并在此处添加密码:
'mysql' => [
...,
'password' => ''
...])
答案 13 :(得分:0)
我也有这样的问题。我创建了一个新数据库
CREATE DATABASE askiDB CHARACTER SET utf8;
然后在MySQL Workbench的导航器控制台中选择此数据库,然后在“管理角色”选项卡中选择所有“角色”。然后,在登录选项卡中设置密码。 此外,在项目的.env文件中,我正确设置了该文件的DB_USERNAME和DB_PASSWORD。 然后我执行以下命令 php artisan migration
效果很好。
答案 14 :(得分:0)
对于我来说,我只是在 .env 文件中添加了用户名的密码。
答案 15 :(得分:0)
您可以尝试
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=test
DB_USERNAME=root
DB_PASSWORD=
答案 16 :(得分:0)
我也遇到了相同的错误,您可以在这里参考:
// config your host-name
APP_URL=http://test.demo
LOG_CHANNEL=stack
DB_CONNECTION=mysql
// default phpmyadmin display: localhost:3306
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=test
DB_USERNAME=root
DB_PASSWORD=root
答案 17 :(得分:0)
如果您要在Homestead上运行此命令,则需要确保将.env
文件中以下环境变量的值更改为:
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret
更改值后,请确保先运行以下两个命令,然后再执行其他操作:
php artisan config:clear
php artisan cache:clear
答案 18 :(得分:0)
使用localhost
代替127.0.0.1
而且您走的很好!
答案 19 :(得分:0)
如果您以前使用不同的用户名和密码在phpmyadmin上建立了数据库,则您的本地主机帐户需要一个新用户来使用不同的密码。我尝试了以前使用的用户名和密码,为我解决了这个问题。