用户MySql

时间:2018-08-17 21:22:46

标签: mysql laravel localhost

问题是我的本地主机Laravel项目将无法连接到MySQL,出现以下错误:

  

拒绝用户'root'@'localhost'的访问(使用密码:是)

OS:macos高山脉 浏览器:Chrome; MySql版本:8.0.12 Laravel版本:5.6 宅基版本:7.0

我已尝试解决的问题:

  1. 检查是否正在运行MySql的实例-它正在运行。

  2. 检查.env文件和config / database.php中的凭据-凭据正确(Mysql root用户密码已从安装时生成的密码更改)

  3. 我检查了是否可以通过终端连接以再次检查凭据是否正确-我可以并且它们正确

  4. 尝试创建具有所有root特权的新MySql用户。 -同样的错误。

  5. 我可以在终端中运行php artisan migrate并创建表。由于该网站被拒绝,我认为这很奇怪。

  6. 我完全删除了MySql 3次。 (遵循本指南:https://gist.github.com/vitorbritto/0555879fe4414d18569d)-相同的错误

  7. 所以我从头开始销毁了无聊的盒子和Laravel项目,并从头开始-出现相同的错误。

  8. 抵制冲动我的计算机的冲动。

.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

5 个答案:

答案 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)

  1. 将CD放入您的Homestead目录
  2. 运行vagrant ssh
  3. 运行php artisan migrate

答案 4 :(得分:0)

尝试

首先在mysql中运行sudo mysql -u root -p 接下来执行此命令:

use mysql;
update user set plugin='' where User="root";
flush priviliges;
exit