【问题标题】:Connection Attempt Failed, Connected Party didn't Properly Respond连接尝试失败,连接方没有正确响应
【发布时间】:2019-03-18 18:30:36
【问题描述】:

SQLSTATE[HY000] [2002] 连接尝试失败,因为 关联方在一段时间后没有正确响应,或 建立连接失败,因为连接的主机未能 回应。 (SQL: SELECT * FROM users)

我想连接到本地项目中的远程数据库,但是当我这样做时,我得到了上面列出的错误。它适用于我的另一个数据库(来自本地主机),我如何连接我的远程服务器数据库?

database.php

'mysql2' => [
    'driver' => 'mysql',
    'host' => 'domain.com',
    'port' => '3306',
    'database' => 'mybd',
    'username' => 'username',
    'password' => 'password',
    'charset' => 'utf8mb4',
    'collation' => 'utf8mb4_unicode_ci',
    'prefix' => '',
    'options' => ['mode' => 'ssl'],
    'strict' => false,
    'engine' => null,
]

控制器

public function test()
{
    $users = DB::connection('mysql2')->select("SELECT * FROM users");
    dd($users);
}

【问题讨论】:

  • 本地开发用什么? Xampp 或 vm 或 docker
  • 远程数据库是否允许您连接 SQL Workbench?我的猜测是您启用了某种远程块。如果您使用 Cpanel,您可以登录并在 Remote MySQL 下查看如果您自己托管,您可以查看 This StackOverflow question
  • 在您的远程服务器上执行 dbms 服务器,侦听公共网络或仅侦听本地主机。您的似乎不对公共网络开放(或者如果您正在使用局域网)
  • @abdulla_malik 我正在使用 xampp
  • @SuitBoyApps 我已添加主机访问权限

标签: php mysql database laravel remote-access


【解决方案1】:

解决方案:

  1. 尝试从'options'=>['mode'=>'ssl'] 中删除SSL
  2. 暂时禁用远程数据库上的防火墙(如果您有访问权限)只是为了测试。如果可行,则在您的远程服务器上允许或添加源http://localhost
  3. 使用 VM 或 docker,在其中之一上配置 SSL。

【讨论】:

  • 我正在使用共享主机
  • 你有 ssl 活动吗?
  • 哦,等等。您是说您的数据库是在共享主机中还是在您的 laravel 应用程序中?
  • 我的 laravel 应用程序在本地电脑上,我想将在线数据库与本地电脑同步
  • 你的 laravel 应用程序必须在 ssl 上运行,否则它将无法工作。
猜你喜欢
  • 2014-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-27
  • 2015-07-17
  • 2013-06-13
  • 2016-08-30
  • 2020-06-19
相关资源
最近更新 更多