Getting SQLSTATE[HY000] [2002] Connection refused on ajax execution.
franciscoarnaldog opened this issue · comments
Summary of problem or feature request
Getting SQLSTATE[HY000] [2002] Connection refused on ajax execution.
Code snippet of problem
[2023-08-16 17:31:26] local.ERROR: PDOException: SQLSTATE[HY000] [2002] Connection refused in /home/franzag/code/_cf/HandyWay/guiasdev/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:40
Stack trace:
#0 /home/franzag/code/_cf/HandyWay/guiasdev/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php(40): PDO->__construct()
#1 /home/franzag/code/_cf/HandyWay/guiasdev/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): Doctrine\DBAL\Driver\PDOConnection->__construct()
#2 /home/franzag/code/_cf/HandyWay/guiasdev/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(100): Illuminate\Database\Connectors\Connector->createPdoConnection()
#3 /home/franzag/code/_cf/HandyWay/guiasdev/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(50): Illuminate\Database\Connectors\Connector->tryAgainIfCausedByLostConnection()
#4 /home/franzag/code/_cf/HandyWay/guiasdev/vendor/laravel/framework/src/Illuminate/Database/Connectors/MySqlConnector.php(24): Illuminate\Database\Connectors\Connector->createConnection()
#5 /home/franzag/code/_cf/HandyWay/guiasdev/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(184): Illuminate\Database\Connectors\MySqlConnector->connect()
#6 [internal function]: Illuminate\Database\Connectors\ConnectionFactory->Illuminate\Database\Connectors\{closure}()
#7 /home/franzag/code/_cf/HandyWay/guiasdev/vendor/laravel/framework/src/Illuminate/Database/Connection.php(926): call_user_func()
#8 /home/franzag/code/_cf/HandyWay/guiasdev/vendor/laravel/framework/src/Illuminate/Database/Connection.php(961): Illuminate\Database\Connection->getPdo()
#9 /home/franzag/code/_cf/HandyWay/guiasdev/vendor/laravel/framework/src/Illuminate/Database/Connection.php(405): Illuminate\Database\Connection->getReadPdo()
#10 /home/franzag/code/_cf/HandyWay/guiasdev/vendor/laravel/framework/src/Illuminate/Database/Connection.php(331): Illuminate\Database\Connection->getPdoForSelect()
#11 /home/franzag/code/_cf/HandyWay/guiasdev/vendor/laravel/framework/src/Illuminate/Database/Connection.php(664): Illuminate\Database\Connection->Illuminate\Database\{closure}()
#12 /home/franzag/code/_cf/HandyWay/guiasdev/vendor/laravel/framework/src/Illuminate/Database/Connection.php(745): Illuminate\Database\Connection->runQueryCallback()
#13 /home/franzag/code/_cf/HandyWay/guiasdev/vendor/laravel/framework/src/Illuminate/Database/Connection.php(725): Illuminate\Database\Connection->tryAgainIfCausedByLostConnection()
#14 /home/franzag/code/_cf/HandyWay/guiasdev/vendor/laravel/framework/src/Illuminate/Database/Connection.php(634): Illuminate\Database\Connection->handleQueryException()
#15 /home/franzag/code/_cf/HandyWay/guiasdev/vendor/laravel/framework/src/Illuminate/Database/Connection.php(339): Illuminate\Database\Connection->run()
#16 /home/franzag/code/_cf/HandyWay/guiasdev/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(2270): Illuminate\Database\Connection->select()
#17 /home/franzag/code/_cf/HandyWay/guiasdev/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(2258): Illuminate\Database\Query\Builder->runSelect()
#18 /home/franzag/code/_cf/HandyWay/guiasdev/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(2753): Illuminate\Database\Query\Builder->Illuminate\Database\Query\{closure}()
#19 /home/franzag/code/_cf/HandyWay/guiasdev/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(2259): Illuminate\Database\Query\Builder->onceWithColumns()
#20 /home/franzag/code/_cf/HandyWay/guiasdev/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(548): Illuminate\Database\Query\Builder->get()
#21 /home/franzag/code/_cf/HandyWay/guiasdev/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(532): Illuminate\Database\Eloquent\Builder->getModels()
#22 /home/franzag/code/_cf/HandyWay/guiasdev/vendor/yajra/laravel-datatables-oracle/src/QueryDataTable.php(272): Illuminate\Database\Eloquent\Builder->get()
#23 /home/franzag/code/_cf/HandyWay/guiasdev/vendor/yajra/laravel-datatables-oracle/src/QueryDataTable.php(101): Yajra\DataTables\QueryDataTable->results()
#24 /home/franzag/code/_cf/HandyWay/guiasdev/app/Http/Controllers/ConsultaGuiasController.php(382): Yajra\DataTables\QueryDataTable->make()
$wheres = [];
$wheres[] = ' e.id = 1 ';
$wheres = count($wheres) > 0 ? implode(' AND ', $wheres) : ' g.id > 0 ';
$guias = Guia::select($this->SELECT)->from('guias as g')
->join('consignatarios as c', 'g.consignatario_id', '=', 'c.id')
->join('aeropuertos as ao', 'g.aero_origen_id', '=', 'ao.id')
->join('aeropuertos as ad', 'g.aero_destino_id', '=', 'ad.id')
->join('users as u', 'g.user_id', '=', 'u.id')
->leftJoin('guias_echamp as ge', 'g.id', '=', 'ge.guia_id')
->leftJoin('manifiesto_guias as mg', 'g.id', '=', 'mg.guia_id')
->leftJoin('manifiestos as m', 'm.id', '=', 'mg.manifiesto_id')
->leftJoin('vuelos as v', 'm.vuelo_id', '=', 'v.id')
->leftJoin('empresas as e', 'v.empresa_id', '=', 'e.id')
->whereRaw($wheres);
return DataTables::eloquent($guias)
->editColumn('oper', function (Guia $g) use ($name, $fFechaDesde, $fFechaHasta, $fConsignatarioSel, $fConsignatario) {
$ret = "";
$show_url = url("/consulta_guias/show/{$g->id}?fFechaDesde={$fFechaDesde}&fFechaHasta={$fFechaHasta}&fConsignatarioSel={$fConsignatarioSel}&fConsignatario={$fConsignatario}");
$show_icon = "<i class='fas fa-search'></i>";
$print_url = url("/consulta_guias/imprimir/{$g->id}");
$print_icon = "<i class='fas fa-print'></i>";
$ret .= "<a href='{$show_url}' title='Ver detalles de Guia #".$g->id."' style='text-decoration:none;'>
{$show_icon}
</a> ";
$ret .= "<a href='{$print_url}' target=\"_blank\" title='Imprimir Guia #".$g->id."' style='text-decoration:none;'>
{$print_icon}
</a>";
return $ret;
})
->filterColumn('g_numero', function($query, $keyword) {
$sql = "CONCAT(`ad`.`cod` , '-', LPAD(`g`.`id`,6,'0')) LIKE ?";
$query->whereRaw($sql, ["%{$keyword}%"]);
})
->filterColumn('guia_echamp', function ($query, $keyword) {
$sql = "CONCAT(ge.prefijo,ge.numero,ge.ultimo_digito) LIKE ?";
$query->whereRaw($sql, ["%{$keyword}%"]);
})
->filterColumn('c_tipo_doc', function($query, $keyword) {
$sql = "CASE tipo_doc
WHEN 1 THEN '".Consignatario::TIPOS_DOC[1]."'
WHEN 2 THEN '".Consignatario::TIPOS_DOC[2]."'
WHEN 3 THEN '".Consignatario::TIPOS_DOC[3]."'
WHEN 4 THEN '".Consignatario::TIPOS_DOC[4]."'
END LIKE !";
$query->whereRaw($sql, ["%{$keyword}%"]);
})
->filterColumn('c_condicion_iva', function($query, $keyword) {
$sql = "CASE condicion_iva
WHEN 1 THEN '".Consignatario::CONDICIONES_IVA[1]."'
WHEN 2 THEN '".Consignatario::CONDICIONES_IVA[2]."'
WHEN 3 THEN '".Consignatario::CONDICIONES_IVA[3]."'
WHEN 4 THEN '".Consignatario::CONDICIONES_IVA[4]."'
WHEN 5 THEN '".Consignatario::CONDICIONES_IVA[5]."'
WHEN 6 THEN '".Consignatario::CONDICIONES_IVA[6]."'
END LIKE !";
$query->whereRaw($sql, ["%{$keyword}%"]);
})
->filterColumn('estado_c', function($query, $keyword) {
$sql = "CASE estado
WHEN 0 THEN '".Guia::ESTADOS[0][0]."'
WHEN 1 THEN '".Guia::ESTADOS[1][0]."'
WHEN 2 THEN '".Guia::ESTADOS[2][0]."'
WHEN 3 THEN '".Guia::ESTADOS[3][0]."'
WHEN 4 THEN '".Guia::ESTADOS[4][0]."'
WHEN 5 THEN '".Guia::ESTADOS[5][0]."'
WHEN 6 THEN '".Guia::ESTADOS[6][0]."'
WHEN 7 THEN '".Guia::ESTADOS[7][0]."'
ELSE '!'
END LIKE ?";
$query->whereRaw($sql, ["%{$keyword}%"]);
})
->filterColumn('prioridad_c', function($query, $keyword) {
$sql = "CASE prioridad
WHEN 1 THEN '".Guia::PRIORIDADES[1][0]."'
WHEN 2 THEN '".Guia::PRIORIDADES[2][0]."'
WHEN 3 THEN '".Guia::PRIORIDADES[3][0]."'
ELSE '!'
END LIKE ?";
$query->whereRaw($sql, ["%{$keyword}%"]);
})
->filterColumn('g_cpbte', function($query, $keyword) {
$sql = "(SELECT GROUP_CONCAT( CONCAT_WS('' , CONCAT( LPAD(`cs`.`pto_venta`,5,'0') , '-', LPAD(`cs`.`numero`,8,'0'))) SEPARATOR ' - ')
FROM `cpbtes` as `cs`
INNER JOIN `guia_liquidacion` `gl` ON `gl`.`guia_id` = `g`.`id`
INNER JOIN `liquidaciones` `l` ON `l`.`id` = `gl`.`liquidacion_id`
WHERE `cs`.`guia_id` = `g`.`id` OR `cs`.`liquidacion_id` = `l`.`id`)
LIKE ?";
$query->whereRaw($sql, ["%{$keyword}%"]);
})
->editColumn('importe', function (Guia $g) {
return $g->importe != 0 ? $g->importe:'';
})
->editColumn('created_at', function (Guia $g) {
return $g->created_at?$g->created_at->format('d/m/Y'):null;
//->format('Y-m-d H:i:s'):null;
})
->editColumn('updated_at', function (Guia $g) {
return $g->updated_at?$g->updated_at->format('d/m/Y'):null;
})
->rawColumns(['oper', 'estado_c'])
->blacklist(['oper'])
->make(true);
System details
I suspect its something related to the sessions? database sessions.
The SQL its alright, I logged the SQL and works fine.
SESSION_DRIVER=database
SESSION_LIFETIME=30
- Operating System: Linux
- PHP Version: 7.4
- Laravel Version: 7
- Laravel-Datatables Version: 9
Just ignore this. Was killing the hanging MySQL process and that error come out.
The problem was a subquery in te select statement, I hope making the joins and just putting the transformation in the select will work.
☕ Thanks
This issue is stale because it has been open for 30 days with no activity. Remove stale label or comment or this will be closed in 7 days.
This issue was closed because it has been inactive for 7 days since being marked as stale.