【发布时间】:2017-03-20 09:54:17
【问题描述】:
我在我的 Macbook Air(OS X 版本 10.11.2)上创建了一个新用户。新用户具有完全的管理员访问权限。我正在使用 MAMP。 MySQL 端口设置为 3306。我可以用其他一切正常连接到 MySQL。我所有的 Laravel 项目都停止连接到 MySQL。当我尝试使用
php artisan migrate
我明白了:
[PDOException]
SQLSTATE[HY000] [2002] Connection refused
这是我的 .env 的数据库部分:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=store
DB_USERNAME=clerk
DB_PASSWORD=inventory
我尝试过使用 root 用户和密码。我尝试过使用不同的端口。我尝试将主机切换到本地主机。我已验证用户名和密码正确,并且用户有权访问数据库。 这是我的 config/database.php 文件的 MySQL 部分:
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'store'),
'username' => env('DB_USERNAME', 'clerk'),
'password' => env('DB_PASSWORD', 'inventory'),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => true,
'engine' => null,
],
我已经搜索了几天,但我似乎无法找到答案。我的旧 Laravel 5.2 项目也无法连接。我很确定这是由创建一个新用户引起的,但我对 MySQL 的了解还不够,无法找出问题所在。
【问题讨论】:
-
您可以使用
mysql命令行工具或MySQL Workbench 程序或等效程序连接吗?您是否尝试过使用localhost而不是127.0.0.1? -
@tadman |我在原帖中回答了这两个问题。
-
连接被拒绝意味着mysql没有运行,或者没有监听。这意味着用户/通行证在此阶段无关紧要。你甚至没有连接到 mysql 来尝试并登录。如果这是一个权限问题,你会得到“拒绝访问”
-
设置
'strict' => false,而不是'strict' => true,并运行连接测试。此外,您的 default 连接字符串应设置为 MySQL,如:'default' => env('DB_CONNECTION', 'mysql')在您的config/database.php文件中。 -
哇...进一步集思广益。