Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel5.3无法连接到mysql_Php_Mysql_Laravel - Fatal编程技术网

Php Laravel5.3无法连接到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.

我在Macbook Air(OS X版本10.11.2)上创建了一个新用户。新用户具有完全的管理员访问权限。我用的是MAMP。MySQL端口设置为3306。我可以连接到MySQL,其他一切都很好。我所有的Laravel项目都停止连接MySQL。当我尝试使用

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。我补充了两件你可以检查的东西。