SQLSTATE[HY000] [2002] 连接尝试失败,因为连接方在一段时间后没有正确响应,
Posted
技术标签:
【中文标题】SQLSTATE[HY000] [2002] 连接尝试失败,因为连接方在一段时间后没有正确响应,【英文标题】:SQLSTATE[HY000] [2002] A connection attempt failed because the connected party did not properly respond after a period of time, 【发布时间】:2019-06-22 10:21:05 【问题描述】:我尝试在我的 Laravel 5.6
项目中连接 2 个数据库,但出现这样的错误
或者连接失败,因为连接的主机没有响应。 (SQL:从
mt_merchant
中选择*)
我尝试了以下代码:
.env
第一个数据库连接(这是在我的本地服务器中)
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=thedaldb
DB_USERNAME=root
DB_PASSWORD=
第二个数据库连接(在实时服务器 IP 18.188.209.59 中)
DB_CONNECTION_SECOND=mysql
DB_HOST_SECOND= 18.188.209.59
DB_PORT_SECOND=3306
DB_DATABASE_SECOND=delivery_test_copied
DB_USERNAME_SECOND=testuser
DB_PASSWORD_SECOND=testuser@123
app/config/database.php
'connections' => [
'onlineorder' => [
'driver' => env('DB_CONNECTION_SECOND'),
'host' => env('DB_HOST_SECOND'),
'port' => env('DB_PORT_SECOND'),
'database' => env('DB_DATABASE_SECOND'),
'username' => env('DB_USERNAME_SECOND'),
'password' => env('DB_PASSWORD_SECOND'),
],
]
app/Models/OnlineOrder/OnlineOrder.php
<?php
namespace App\Models\OnlineOrder;
use Illuminate\Database\Eloquent\Model;
class OnlineOrder extends Model
protected $connection = 'onlineorder';
app/Http/Controllers/Onlineorder/AppOnlineOrderController.php
<?php
namespace App\Http\Controllers\Onlineorder;
use Symfony\Component\HttpKernel\Exception\HttpException;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Input;
use App\Models\OnlineOrder\OnlineOrder;
use Illuminate\Http\Response;
use Illuminate\Http\Request;
use Carbon\Carbon;
use Validator;
use Config;
use File;
use DB;
class AppOnlineOrderController extends Controller
public function test($merchant_id)
$db_ext = DB::connection('onlineorder');
$merchant = $db_ext->table('mt_merchant')->get(); //mt_merchant is table name
print_r($db_ext);exit;
我只是想在我的本地服务器项目中连接实时服务器数据库
【问题讨论】:
实时数据库是否对远程请求开放? @MagnusEriksson:是的 @MagnusEriksson:我认为DB_PORT_SECOND
是问题所在。我也尝试连接local sever
,但同样的错误。
3306 是 MySQL 的标准端口。如果这是问题所在,那么服务器没有使用标准端口,您需要找出要使用的端口。您还应该尝试从 MySQL Workbench(或任何其他数据库管理应用程序)之类的东西连接到远程数据库,看看您是否可以通过这种方式连接到它。
您应该不在此处填写您的实际凭据。你试过我问的吗?尝试从其他应用程序连接到数据库,以确保它实际上正在接受远程连接?从那个开始......如果这不起作用,那么这是一个配置问题而不是代码问题。
【参考方案1】:
在您的 RDS 实例页面的“连接性和安全性”中,检查配置是否在“是”选项上有“公共可访问性”。也许您没有与您的实例关联的公共 IP。
https://aws.amazon.com/premiumsupport/knowledge-center/rds-connectivity-instance-subnet-vpc/
【讨论】:
【参考方案2】:IP 地址总是随时间变化...而不是使用定向 IP 使用主域 喜欢:
DB_HOST_SECOND=mydomain.com.sd
我觉得这样就可以了
【讨论】:
以上是关于SQLSTATE[HY000] [2002] 连接尝试失败,因为连接方在一段时间后没有正确响应,的主要内容,如果未能解决你的问题,请参考以下文章
Symfony 2 SQLSTATE [HY000] [2002] 连接被拒绝错误
Laravel 7 SQLSTATE [HY000] [2002] 连接被拒绝
PHP + MYSQL + Laravel - “SQLSTATE [HY000] [2002] 连接被拒绝” [重复]
gcloud app SQLSTATE[HY000] [2002] 连接超时