从Laravel连接到MySQL

时间:2017-07-07 01:38:43

标签: php mysql laravel laravel-5 vagrant

我设置了一个名为cms的数据库,如果我ssh作为root用户,我可以连接到该数据库,我可以很好地操作数据库。我也可以连接MySQL Workbench。但是,当通过Laravel 5.4进行连接时,它不会让我连接到MySQL来运行迁移。我在.env文件中拥有与在MySQL Workbench中相同的凭据,但仍然没有连接。有什么想法吗?

以下是我在.env文件中的内容

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=cms
DB_USERNAME=root
DB_PASSWORD=

1 个答案:

答案 0 :(得分:3)

通过SSH,您可以在没有密码的情况下以root身份连接到MySQL,因为这是默认行为。它允许本地Linux root用户在MySQL上以root登录,无需密码。

如果您不想在本地(通过SSH)连接,而是通过TCP / IP或使用PHP mysql库的套接字连接,那么您需要为此设置用户。

以下是如何操作:

1)像往常一样通过SSH登录,并使用root访问MySQL

2)创建用户:

CREATE USER 'laravel'@'%' IDENTIFIED BY 'ENTER-PASSWORD-HERE';

3)为您的数据库授予该用户的权限:

GRANT ALL PRIVILEGES ON cms.* TO 'laravel'@'%';

4)刷新权限,以便重新加载所有内容:

FLUSH PRIVILEGES;

5)现在退出SSH并编辑.env文件,如下所示:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=cms
DB_USERNAME=laravel
DB_PASSWORD=ENTER-PASSWORD-HERE

当然,请将占位符“ENTER-PASSWORD-HERE”更改为您喜欢的内容。

您现在应该可以从您的应用程序进行连接。