PrestaShopException {#53
  #message: "Link to database cannot be established: SQLSTATE[HY000] [2002] Connection refused"
  #code: 0
  #file: "/var/www/html/s-e/classes/db/DbPDO.php"
  #line: 136
  trace: {
    /var/www/html/s-e/classes/db/DbPDO.php:136 {} catch (PDOException $e) {    throw new PrestaShopException('Link to database cannot be established: ' . $e->getMessage());}
    }
    /var/www/html/s-e/classes/db/Db.php:379 {if (!$this->result && $this->getNumberError() == 2006) {    if ($this->connect()) {        $this->result = $this->_query($sql);
    }
    /var/www/html/s-e/classes/db/Db.php:613 {
      › 
      › $this->result = $this->query($sql);arguments: {
        $sql: """
          SELECT h.`name` as hook, m.`id_module`, h.`id_hook`, m.`name` as module\n
          FROM `sk_module` m\n
           INNER JOIN sk_module_shop module_shop\n
                  ON (module_shop.id_module = m.id_module AND module_shop.id_shop = 1 AND module_shop.enable_device & 1)\n
          INNER JOIN `sk_module_shop` `ms` ON ms.`id_module` = m.`id_module`\n
          INNER JOIN `sk_hook_module` `hm` ON hm.`id_module` = m.`id_module`\n
          INNER JOIN `sk_hook` `h` ON hm.`id_hook` = h.`id_hook`\n
          LEFT JOIN `sk_module_group` `mg` ON mg.`id_module` = m.`id_module`\n
          WHERE (h.`name` != "paymentOptions") AND (hm.`id_shop` = 1) AND (mg.id_shop = 1 AND  mg.`id_group` IN (1))\n
          GROUP BY hm.id_hook, hm.id_module\n
          ORDER BY hm.`position`\n
          """
      }
    }
    /var/www/html/s-e/classes/Hook.php:1173 {$allHookRegistrations = [];if ($result = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS($sql)) {    foreach ($result as $row) {
      arguments: {
        $sql: """
          SELECT h.`name` as hook, m.`id_module`, h.`id_hook`, m.`name` as module\n
          FROM `sk_module` m\n
           INNER JOIN sk_module_shop module_shop\n
                  ON (module_shop.id_module = m.id_module AND module_shop.id_shop = 1 AND module_shop.enable_device & 1)\n
          INNER JOIN `sk_module_shop` `ms` ON ms.`id_module` = m.`id_module`\n
          INNER JOIN `sk_hook_module` `hm` ON hm.`id_module` = m.`id_module`\n
          INNER JOIN `sk_hook` `h` ON hm.`id_hook` = h.`id_hook`\n
          LEFT JOIN `sk_module_group` `mg` ON mg.`id_module` = m.`id_module`\n
          WHERE (h.`name` != "paymentOptions") AND (hm.`id_shop` = 1) AND (mg.id_shop = 1 AND  mg.`id_group` IN (1))\n
          GROUP BY hm.id_hook, hm.id_module\n
          ORDER BY hm.`position`\n
          """
      }
    }
    /var/www/html/s-e/classes/Hook.php:721 {{    $allHookRegistrations = static::getAllHookRegistrations(Context::getContext(), $hookName);arguments: {
        $context: Context {#8 …}
        $hookName: "moduleRoutes"
      }
    }
    /var/www/html/s-e/classes/Hook.php:805 {
      › 
      › if (!$module_list = Hook::getHookModuleExecList($hook_name)) {    if ($isRegistryEnabled) {
      arguments: {
        $hookName: "moduleRoutes"
      }
    }
    /var/www/html/s-e/classes/Dispatcher.php:596 {// Load custom routes from modules$modules_routes = Hook::exec('moduleRoutes', ['id_shop' => $id_shop], null, true, false);if (is_array($modules_routes) && count($modules_routes)) {
      arguments: {
        $hook_name: "moduleRoutes"
        $hook_args: array:1 [ …1]
        $id_module: null
        $array_return: true
        $check_exceptions: false
      }
    }
    /var/www/html/s-e/classes/Dispatcher.php:249 {
      › 
      ›     $this->loadRoutes();}
    }
    /var/www/html/s-e/classes/Dispatcher.php:207 {    }    self::$instance = new Dispatcher($request);}
      arguments: {
        $request: Request {#43 …}
      }
    }
    /var/www/html/s-e/index.php:29 {\trequire dirname(__FILE__).'/config/config.inc.php';\r\tDispatcher::getInstance()->dispatch();\r}catch(\Exception $e){\r
    }
  }
}