我设置了一个名为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=
答案 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”更改为您喜欢的内容。
您现在应该可以从您的应用程序进行连接。