DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=
DB_USERNAME=root
DB_PASSWORD=
这是laravel 5.4的配置 但PHP artisan迁移不起作用,并有错误 和迁移错误
Users-MacBook-Pro: ATP Developers php artisan migrate
In Connection.php line 664:
SQLSTATE[HY000] [1045] Access denied for user ''@'localhost' (using password: NO) (SQL: select * from information_schema.tables where table schema = atp_db and table_name = migrations)
In Connector.php line 87:
SQLSTATE[HY000] [1045] Access denied for user ''@'localhost' (using password: NO)
答案 0 :(得分:2)
我遇到了类似的问题。因此,我运行了以下提到的命令
https://laracasts.com/discuss/channels/general-discussion/env-file-and-config-keys-not-updating-after-change,
[{category: "a",
details: [{p:1,q:2,r:null},{p:3,q:4,r:null},{p:5,q:6,r:null},{p:7,q:8,r:null},{p:9,q:10,r:null}]},
{category: "b",
details: [{p:11,q:22,r:null},{p:33,q:44,r:null},{p:55,q:66,r:null},{p:77,q:88,r:null},{p:9,q:10,r:null}]},
...
]
此外,请确保也重新启动服务器
php artisan cache:clear
php artisan config:clear
php artisan route:clear
答案 1 :(得分:0)
将env主机条目更改为DB_HOST=localhost
。或者添加@' 127.0.0.1'凭证到mysql。
答案 2 :(得分:0)
你应该写下这些:
DB_DATABASE = your database name
DB_USERNAME = root
DB_PASSWORD = your password
再次运行php artisan serve
以确保保存.env
并再次运行php artisan migrate
答案 3 :(得分:0)
该错误表示您的数据库中没有正确的用户和主机组合。 env文件显示host为127.0.0.1,但错误中指定了localhost。将user @ localhost条目添加到数据库或将用户@%添加到通配符。
答案 4 :(得分:0)
此错误表示您没有在.env文件中配置数据库用户:''@'localhost'。在运行连接到数据库的任何函数之前,您的.env应该使用您配置的数据库名称和凭据填充所有这些字段。
以下是在运行php artisan migrate之前设置数据库和.env文件的初步步骤:
希望它有所帮助。
第1步:登录您的mysql并创建数据库。
mysql -u root -p
create database just_brew_it;
第2步:虽然您可以使用root通过laravel进行身份验证,但我会创建一个新用户来降低任何安全问题的风险:
GRANT ALL PRIVILEGES ON just_brew_it.* TO 'brew_user'@'%' identified by 'pint0fStell@' WITH GRANT OPTION;
FLUSH privileges;
第3步:使用适当的数据库,用户名和密码修改.env
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE= just_brew_it
DB_USERNAME= brew_user
DB_PASSWORD= pint0fStell@
答案 5 :(得分:0)
实际上,我遇到了同样的问题,我无法解释为什么Laravel指示旧主机,但是解决方案是更改密码。
在下面使用=> php artisan config:cache
答案 6 :(得分:0)
这个组合对我有用:
php artisan clear-compiled
composer dump-autoload
php artisan optimize
答案 7 :(得分:0)
我遇到了同样的问题,即使使用 Artisan::call('config:cache'),我也无法运行 "config:cache" artisan 命令;
所以我这样做并解决了我的问题:
artisan config:cache 将 /config 中的所有文件缓存到它存储的单个数组中。然后它从该数组中读取所有配置变量并忽略 .env 或 /config 文件中的任何内容,直到您重新缓存它们。这就是为什么删除 .env 后它仍然有效。
https://laravel.com/docs/5.6/configuration#configuration-caching
如果您没有对实时服务器的 ssh 访问权限,则只需删除 bootstrap/cache/config.php 文件,该文件是 config:cache 生成的缓存文件。