Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.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 Laravel 6.4.1 SQLSTATE[HY000][2002]连接被拒绝_Php_Laravel_Macos_Xampp - Fatal编程技术网

Php Laravel 6.4.1 SQLSTATE[HY000][2002]连接被拒绝

Php Laravel 6.4.1 SQLSTATE[HY000][2002]连接被拒绝,php,laravel,macos,xampp,Php,Laravel,Macos,Xampp,我是拉维发展公司的新手。 我已经在Mac Mojave 10.14.6上将Xampp更新为7.3.11。 在Laravel项目中,当我点击php artisan migrate命令时,我得到了以下错误 SQLSTATE[HY000][2002]连接被拒绝(SQL:select*from) 信息\u schema.tables,其中table\u schema=larvel和table\u name =迁移和表_类型='基表') 当我启动Xampp服务时,我的管理面板将运行。 我在Laravel的

我是拉维发展公司的新手。 我已经在Mac Mojave 10.14.6上将Xampp更新为7.3.11。 在Laravel项目中,当我点击php artisan migrate命令时,我得到了以下错误

SQLSTATE[HY000][2002]连接被拒绝(SQL:select*from) 信息\u schema.tables,其中table\u schema=larvel和table\u name =迁移和表_类型='基表')

当我启动Xampp服务时,我的管理面板将运行。 我在Laravel的工作项目也没有连接到数据库,表示连接被拒绝。 我尝试在.env文件中更改
DB\u端口
DB\u主机
。 我试图清除缓存

任何帮助都将不胜感激

我的
.env
文件

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

打开
localhost/phpmyadmin
并找到一个名为
User accounts
的选项卡

找到
root
用户并在
.env
中设置其密码,如果数据库不存在,也不要忘记创建名为
laravel
的数据库

然后可以清除配置缓存

php artisan配置:清除 迁移

php artisan迁移
我也有同样的问题。通过重新启动本地主机服务器(即Xampp)解决了此问题。我遇到了相同的问题,当我应用以下操作时,问题得到了解决

    php artisan key:generate
    php artisan cache:clear
    php artisan route:clear
    php artisan config:clear 
    php artisan view:clear 

我在docker compose for development中使用Laravel构建了一个新项目,也遇到了这个错误

我的解决方案是将prebuild.env文件与我用于构建数据库容器的实际凭据进行比较。 特别是我使用了
DB\u HOST=127.0.0.1
而不是docker compose设置的正确服务名称:
DB\u HOST=mysql
在.env中尝试这个配置(我使用的是Laravel v7.0),它对我有效:

DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=root
试做

php artisan配置:缓存

然后在.env文件中指定数据库和端口

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE= YOUR_DATABASE_NAME
DB_USERNAME=root
DB_PASSWORD=
然后运行mysql服务器并运行

php artisan迁移


注意:确保您的Xammp服务器非常好&已经启动了mysql(使用apache服务器或您正在使用的任何服务器),并且确保您在运行php artisan migrate之前已经创建了数据库,希望它能为您工作

该死,我觉得太傻了哈哈。 这就是我在搔了几个小时的头后所得到的帮助。 检查MySQL运行的端口,以及在.env文件中使用的端口

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=8889
DB_DATABASE=laravel
DB_USERNAME=yourusername
DB_PASSWORD=yourpassword

确保在创建用户时为该用户授予所有权限。如果你还不明白,那就问我,我会找时间帮你的。大家好

我遇到了这个问题,我使用MAMP作为MYSQL服务器。 这是一个配置问题,我通过将端口更改为在MAMP指令中找到的正确端口来解决,即
8889
。 因此,我的
.env
文件中的正确配置是:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=8889
DB_DATABASE=dbname
DB_USERNAME=root
DB_PASSWORD=rootpassword

这只是我遵循并解决的简单步骤

打开.env文件

将DB_HOST=127.0.0.1更改为localhost


完成

在大多数情况下,这是端口配置的问题。您需要检查服务器正在哪个端口上运行。然后您必须编辑项目的.env文件。例如,如果您正在使用mamp,则端口应更改为8889,而不是laravel的默认3606。这同样适用于laravel 8。

我使用的是docker compose文件。您所需要做的就是公开mysql的端口

db:
图片:mysql
命令:---默认身份验证插件=mysql\u本机\u密码
重新启动:始终
环境:
MYSQL\u ROOT\u密码:示例
MYSQL\u数据库:示例
MYSQL\u用户:示例
MYSQL\u密码:示例
端口:
- 3306:3306
管理员:
图片:管理员
重新启动:始终
端口:

-8080:8080
我的情况实际上就是这样

DB_HOST=127.0.0.1
DB_PORT=33060
在那之前

DB_HOST=127.0.0.1
DB_PORT=3306

许多解决方案建议将
DB_HOST
更改为“localhost”。在我的例子中,它只是
DB\u PORT
中的一个很小的
0

请编辑问题并添加
.env
数据库连接变量,我强烈建议使用Laravel Valet,通过自制安装Nginx和MySQL,而不是此Mess。您的MySQL服务器是否在端口3306上运行?@kerbholz是的,它在同一端口上。我已通过将Xampp降级到7.1.33来解决此问题。这对我没有帮助。然而,尽管核心php数据库已连接,但通过添加一些解释,仅代码的答案几乎总能得到改进。像这样的长篇大论是很好的,但它不能解释为什么每一步都应该采取,或者你相信每一步都会带来什么好处。答案的目标应该是教育读者并提供有效的解决方案。你是对的,我不得不说直接解决方案,因为我的英语水平低。在laravel>7的更高版本中,DB_主机不接受使用本地IP地址(127.0.0.1),而是使用URL:localhost。我不知道为什么,但是使用localhost而不是127.0.0.1应该提升这一版本。