Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

LuanMMartins

Conexão com PDO retornando SQLSTATE [HY000] [2002]

Recommended Posts

Olá pessoal, tenho um site na internet, funciona perfeitamente, tanto no meu computador quando na maquina onde fica hospedado.

vamos aos dados da maquina

Intel Xeon 4.7 ghz 4n

Memoria DDR3 16gb

SSD 260 gb

ok vou explicar oque está acontecendo, volta e meia meu site para de se conectar ao banco de dados para alguns usuários, as vezes até para mim, mas verifico em outra maquina e ele entra normalmente, estava pesquisando em alguns foruns gringos, e diz para mudar o host de conexão de 127.0.0.1 para localhost resolve o problema parcialmente. Mas ai que da um outro muito pior. ao mudar para localhost o site qualquer pagina que tenha php e alguma função que faz contato com o banco de dados ele fica muito lento, demora quase 50 segundos para atualizar uma pagina, e quando eu coloco 127.0.0.1 ele roda normal, mas costuma da o problema mencionado algumas vezes no dia.

o site fica no IIS uso PHP 5.6 MySQL 5.4

minha conexão com o banco é a seguinte

Config.inc.php

define('HOST', '127.0.0.1');
define('USER', 'root');
define('PASS', '');
define('DBSA', 'banco');


define('WS_ACCEPT', 'accept');
define('WS_ERROR', 'error');
define('WS_INFOR', 'infor');

ini_set('display_errors',1);
ini_set('display_startup_erros',1);
error_reporting(E_ALL);

Class Conn.class.php

abstract class Conn {
    
    private $Host = HOST;
    private $User = USER;
    private $Pass = PASS;
    private $Dbsa = DBSA;
    /* @var PDO */
    private $Connect = null;
    
    
    public function getConn(){
        return $this->Conectar();//chamando a conexão com o metodo e retornando Connect
    }
    
    private function Conectar(){
        try{
            if($this->Connect == null):
                $dsn = 'mysql:host='.$this->Host.';dbname='.$this->Dbsa;
                $options = [PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES UTF8'];
                $this->Connect = new PDO($dsn, $this->User, $this->Pass, $options);
            endif;
        } catch (PDOException $e){
            exibeMensagens("Código do erro: {$e->getCode()}<br>"
            . "Mensagem : {$e->getMessage()}<br>"
            . "Arquivo: {$e->getFile()}<br>"
            . "<font style='color:red;'>Motivo: Não foi possivel se conectar ao banco de dados! verifique a configuração no arquivo inc/config.inc.php</font><br>"
            . "Linha : {$e->getLine()}", WS_ERROR);
            die;
        }//finaliza catch
        return $this->Connect;
    }//finaliza método Conectar
}

alguem tem ideia de como resolver esse problema, ou se é minha função de conexão que está faltando algo, falaram que pode ser o mysql tentando se conectar por uma porta diferente, mas tambem não sei se é

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.