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

时间:2016-12-19 15:16:29

标签: php laravel

所以我想将现有的laravel项目部署到我的digitalocean vps中 我是用户this,我成功上传了我的网站

我的env文件也是

APP_ENV=local
APP_KEY=my app key
APP_DEBUG=true
APP_LOG_LEVEL=debug
APP_URL=http://localhost

DB_CONNECTION=mysql
DB_HOST=my ip
DB_PORT=3306
DB_DATABASE=form
DB_USERNAME=root
DB_PASSWORD=my pass

但这是问题

我使用了mysql并创建并运行php artisan migrate 并得到这些错误 有什么问题

  

[照亮\数据库\ QueryException]     SQLSTATE [HY000] [2002]连接被拒绝(SQL:select * from information_s     chema.tables其中table_schema = form和table_name = migrations)

  

[PDOException]     SQLSTATE [HY000] [2002]拒绝连接

10 个答案:

答案 0 :(得分:27)

.env文件中,将DB_HOST127.0.0.1更改为localhost

答案 1 :(得分:2)

在您的.env文件中,将DB_HOST从127.0.0.1更改为localhost

然后

  1. php artisan cache:clear
  2. php artisan route:clear
  3. php artisan config:clear
  4. php artisan view:clear

    这对我有用。

答案 2 :(得分:1)

您可能会遇到此错误。

  • 数据库服务器未启动,请检查您是否仍然可以使用phpmyadmin。如果仍然可以使用它,那么数据库服务器没有任何问题。
  • 错误配置;检查.env文件和config / database.php
  • 中的用户名,密码和服务器设置
  • 没有给定凭据的服务器和/或数据库的权限 看看你已经采取的步骤,我认为这是最后一步。

检查此用户是否可以从远程位置访问数据库。默认情况下,root用户可以在本地访问服务器(localhost,127.0.0.1和:: 1)。

因此,请检查用户是否可以从远程IP或任何地方进行访问。

当您使用digitalocean时,我建议检查他们是否具有连接到mysql数据库的特定配置。

答案 3 :(得分:1)

SELinux可能是原因。

设置此规则,然后重试:

sudo setsebool -P httpd_can_network_connect_db=1

答案 4 :(得分:1)

试图为尚未在上述任何答案中获得成功的你们提供解决方案,我将分享我的解决方案。

来自Windows 10,我了解root用户的密码始终为空,因此我的.env文件如下所示:

DB_USERNAME=root
DB_PASSWORD=

在Mac上,密码也默认为“ root”。将我的.env文件更改为如下所示可解决我的问题:

DB_USERNAME=root
DB_PASSWORD=root

答案 5 :(得分:0)

输入字符串:

DB_SOCKET=/Applications/MAMP/tmp/mysql/mysql.sock

在DB_PASSWORD =

之后

它适用于MAMP。将路径设置为mysql.sock

答案 6 :(得分:0)

我的作曲家已在全球安装,我运行php artisan serve时没有启动xampp并得到此错误。运行我的xampp服务器后,从我的角度来看它工作正常。

答案 7 :(得分:0)

长时间工作对我有用:

在php My Admin之前更改端口8889

APP_NAME=laravel
APP_ENV=local
APP_KEY= YOUR KEY
APP_DEBUG=true
APP_URL=127.0.0.1

LOG_CHANNEL=stack

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_SOCKET=/Applications/MAMP/tmp/mysql/mysql.sock

然后

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

答案 8 :(得分:0)

在您的.env文件中

class test{
   constructor(){
      console.log('stuff');
   }
   foo(){console.log('stuff 2');}
}
var obj = new test(); //will print 'stuff' in console
obj.foo();            //will pring 'stuff2' in console


function test(){
   console.log('stuff');
   function foo(){console.log('stuff 2');}
   return {foo:foo}
}
var obj = new test(); //will print 'stuff' in console
obj.foo();            //will pring 'stuff2' in console
var obj2 = test();    //will print 'stuff' in console
obj2.foo();           //will pring 'stuff2' in console

答案 9 :(得分:0)

在按照上述说明进行更改之前,

  1. 检查数据库服务器是否正在运行。如果您使用的是command prompt,则运行mysql.server状态或mysqld状态将显示数据库状态。
  2. 如果数据库正在运行,请检查是否允许dbuser'%''localhost''127.0.0.1'连接。否则,只需授予用户'%'
  3. 的访问权限
  4. 如果已完成1和2,但仍然无法连接,请查看是否允许db用户访问模式。如果没有,请授予对架构的访问权限
  5. 如果到达此处仍然遇到相同的错误,请尝试重新启动Web服务器。