Php Laravel5.3无法连接到mysql
我在Macbook Air(OS X版本10.11.2)上创建了一个新用户。新用户具有完全的管理员访问权限。我用的是MAMP。MySQL端口设置为3306。我可以连接到MySQL,其他一切都很好。我所有的Laravel项目都停止连接MySQL。当我尝试使用Php Laravel5.3无法连接到mysql,php,mysql,laravel,Php,Mysql,Laravel,我在Macbook Air(OS X版本10.11.2)上创建了一个新用户。新用户具有完全的管理员访问权限。我用的是MAMP。MySQL端口设置为3306。我可以连接到MySQL,其他一切都很好。我所有的Laravel项目都停止连接MySQL。当我尝试使用 php artisan migrate 我得到: [PDOException] SQLSTATE[HY000] [2002] Connection refused 以下是my.
php artisan migrate
我得到:
[PDOException]
SQLSTATE[HY000] [2002] Connection refused
以下是my.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,
],
我已经找了几天了,似乎找不到答案。我以前的Laravel5.2项目也无法连接。我很确定这是由于创建了一个新用户造成的,但我对MySQL的了解还不够,无法找出问题所在。尝试更改您的db\u host=localhost:3306您定义了一个
引擎=null
。据我所知,该引擎在MySqlGrammar.php
中使用,特别是在编译create查询时。我只看到视图的空引擎
请尝试以下配置:
'mysql'=>[
“驱动程序”=>“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'),
“字符集”=>“utf8”,
“排序规则”=>“utf8\U unicode\U ci”,
'前缀'=>'',
],
您在问题中确实提到了这一点,并认为以下内容在终端上起作用
mysql -uclerk -pinventory -h127.0.0.1 -P3306 store
可能是需要的
mysql -uclerk -pinventory -hlocalhost -P3306 store
您还可以在项目中使用info.php
文件来检查其他内容,以再次检查PDO作为模块的引用是否一切正常
<?php
phpinfo();
然后以root用户身份访问mysql,并包括select语句的输出:
mysql> select host, user, password, authentication_string, password_expired from mysql.user;
在使用MAMP时,请确保使用来自
/Applications/MAMP/Library/bin/mysql的mysql命令行工具,该问题已得到解决。几个小时后,我决定接受@nyedikeke的建议,重新安装mysql。我正在使用MAMP,我一直想停止使用它一段时间。我卸载了它,并通过自制程序安装了mysql。一切都很好,谢谢你的帮助 按照我在您的问题下面的评论中建议的故障排除过程进行操作后,所有这些都应按预期工作
如果不是这样的话,你肯定错过了什么。。。我想这是一个路径问题
我建议你,卸载你的MySQL,然后在下载一个新的
遵循为可能的修复而详述的方法
有了这一点,您的挑战肯定会得到解决。您能连接到mysql
命令行工具或mysql工作台程序或等效程序吗?您是否尝试过使用localhost
而不是127.0.0.1
?@tadman |我在最初的帖子中回答了这两个问题。拒绝连接意味着mysql没有运行,或者没有侦听。这意味着用户/通行证在此阶段不相关。你甚至连一个mysql连接都无法尝试登录。如果是权限问题,您将得到“拒绝访问”设置'strict'=>false,
而不是'strict'=>true,
,并运行连接测试。另外,您的默认连接字符串应该设置为MySQL,如:config/database.php
file.Wow中的env('DB\u connection','MySQL')
。。。进一步的头脑风暴。尝试了你的建议:mysql-nuclerk-pinventory-hlocalhost-P3306商店运行良好。PDO脚本也工作得非常好。如果-hlocalhost工作,那么您需要将.env文件中的DB_主机从127.0.0.1更新为localhost。我补充了两件你可以检查的东西。