【问题标题】:Laravel SQLSTATE[HY000] [2002] Connection refusedLaravel SQLSTATE[HY000] [2002] 连接被拒绝
【发布时间】:2017-05-04 16:33:00
【问题描述】:

所以我想将我现有的 Laravel 项目部署到我的数字海洋 VPS 中 我使用了this tutorial,并成功上传了我的网站。

我的.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

并得到这些错误:

[Illuminate\Database\QueryException] SQLSTATE[HY000] [2002] Connection refused (SQL: select * from information_schema.tables where table_schema = form and table_name = migrations)

[PDOException] SQLSTATE[HY000] [2002] Connection refused

【问题讨论】:

  • 您是否在.env 文件中定义了您的数据库凭据?
  • @Froxz 看到它已经没有帮助,他的问题是关于宅基地
  • @SaumyaRastogi 是的,我附上了它
  • @MohammadReza 检查您的数据库/用户名/密码检查mysql是否正在运行Connection refused错误它无法连接,也许您的用户没有足够的访问权限等等。

标签: php mysql laravel


【解决方案1】:

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

【讨论】:

  • 它不在我的本地主机中,除了我附加了我的 .env 文件
  • @Arsalan,您是否使用远程服务器来存储数据库?然后尝试使用域名而不是 IP。
  • 这解决了我的问题。但我无法理解:127.0.0.1localhost 有什么区别吗?
  • @GhulamAkbar 没有区别,除非数据库只接受来自localhost 的连接。例如。为了接受来自两者的连接,您必须创建 2 个用户,admin@localhostadmin@127.0.0.1
  • 我看到人们提到相反的情况,这对我不起作用。迁移有效,但在尝试获取数据时无效。
【解决方案2】:

输入字符串:

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

在 DB_PASSWORD=之后

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

【讨论】:

  • 这对我有用。但我仍然不知道为什么它工作了这么久没有问题,然后现在它停止工作了。
【解决方案3】:

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

然后

  1. php artisan 缓存:清除
  2. php 工匠路线:清除
  3. php 工匠配置:清除
  4. php 工匠视图:清除

    这对我有用。

【讨论】:

    【解决方案4】:

    您收到此错误的原因有多种。

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

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

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

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

    【讨论】:

      【解决方案5】:

      经过很长时间,这对我有用:

      在 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
      

      【讨论】:

        【解决方案6】:

        SELinux 可能是原因。

        设置此规则并重试:

        sudo setsebool -P httpd_can_network_connect_db=1
        

        【讨论】:

          【解决方案7】:

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

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

          【讨论】:

            【解决方案8】:

            我的作曲家是全局安装的,我在没有启动 xampp 的情况下运行 php artisan serve 并收到此错误。运行我的 xampp 服务器后,它在我这边运行良好。

            【讨论】:

              【解决方案9】:

              为了尝试为那些在任何已经提到的答案中没有成功的人提供解决方案,我将分享我的解决方案。

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

              DB_USERNAME=root
              DB_PASSWORD=
              

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

              DB_USERNAME=root
              DB_PASSWORD=root
              

              【讨论】:

                【解决方案10】:

                在您的 .env 文件中

                DB_CONNECTION=mysql
                DB_HOST=127.0.0.1
                DB_PORT=3306
                DB_DATABASE=ur_db_name
                DB_USERNAME=ur_db_username
                DB_PASSWORD=ur_dbuser_password
                

                【讨论】:

                  【解决方案11】:

                  如果您在 Mac 上使用 XAMPP,只需使用 XAMPP 仪表板中的嵌入式 IP 地址作为 DB_HOST 而不是 127.0.0.1 或 localhost...

                  如果它仍然拒绝与用户建立联系,但坚持这个想法。

                  谢谢。

                  【讨论】:

                    猜你喜欢
                    • 2017-09-20
                    • 2020-03-26
                    • 2020-12-04
                    • 2020-02-27
                    • 2016-11-03
                    • 1970-01-01
                    • 2021-07-10
                    • 2021-12-17
                    • 2019-08-21
                    相关资源
                    最近更新 更多