问题是我的本地主机Laravel项目将无法连接到MySQL,出现以下错误:
拒绝用户'root'@'localhost'的访问(使用密码:是)
OS:macos高山脉 浏览器:Chrome; MySql版本:8.0.12 Laravel版本:5.6 宅基版本:7.0
我已尝试解决的问题:
检查是否正在运行MySql的实例-它正在运行。
检查.env文件和config / database.php中的凭据-凭据正确(Mysql root用户密码已从安装时生成的密码更改)
我检查了是否可以通过终端连接以再次检查凭据是否正确-我可以并且它们正确
尝试创建具有所有root特权的新MySql用户。 -同样的错误。
我可以在终端中运行php artisan migrate
并创建表。由于该网站被拒绝,我认为这很奇怪。
我完全删除了MySql 3次。 (遵循本指南:https://gist.github.com/vitorbritto/0555879fe4414d18569d)-相同的错误
所以我从头开始销毁了无聊的盒子和Laravel项目,并从头开始-出现相同的错误。
抵制冲动我的计算机的冲动。
.env(已更新)
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret
yaml:
---
ip: "192.168.10.10"
memory: 2048
cpus: 1
provider: virtualbox
authorize: ~/.ssh/id_rsa.pub
keys:
- ~/.ssh/id_rsa
folders:
- map: ~/Sites
to: /home/vagrant/Sites
sites:
- map: site.test
to: /home/vagrant/Sites/sitetest/public
databases:
- homestead
/ etc / hosts
##
##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
127.0.0.1 site.test
答案 0 :(得分:4)
宅基地的默认密码不是something
。
根据laravel文档,它是secret
。
为MySQL和PostgreSQL配置了Homestead数据库 的盒子。为了更加方便,Laravel的.env文件配置 开箱即用地使用该数据库的框架。
从主机连接到MySQL或PostgreSQL数据库 计算机的数据库客户端,您应该连接到127.0.0.1和端口 33060(MySQL)或54320(PostgreSQL)。的用户名和密码 这两个数据库都是宅基地/秘密数据库。
文档位于:https://laravel.com/docs/5.6/homestead
您还可以通过以下方式授予用户使用数据库的权限:
GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost';
答案 1 :(得分:2)
在hosts文件中,运行Homestead时,必须将127.0.0.1 site.test
更改为192.168.10.10 site.test
当然只有在vagrant up
之后才可以使用
答案 2 :(得分:0)
您可以通过缓存配置来解决问题:
php artisan config:cache
答案 3 :(得分:0)
vagrant ssh
php artisan migrate
答案 4 :(得分:0)
尝试
首先在mysql中运行sudo mysql -u root -p
接下来执行此命令:
use mysql;
update user set plugin='' where User="root";
flush priviliges;
exit