Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

carcleo

conexão remota não funciona. Só local

Mensagens Recomendadas

carcleo

Estou recebendo esse erro do servidor ao tentar conectar via PDO com o mysql no link abaixo

http://funerariasaopedro.net.br/crud/   

 

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [2002] 
    Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)' 
    in /var/www/html/funerariasaopedro.net.br/web/crud/_conexao/Conexao.php:33 
    Stack trace: #0 /var/www/html/funerariasaopedro.net.br/web/crud/_conexao/Conexao.php(33): 
    PDO->__construct('mysql:?????????...', 'carcleo', 'teste') 
    #1 /var/www/html/funerariasaopedro.net.br/web/crud/cadastraPlanos.php(9): CONEXAO\Conexao->__construct() 
    #2 /var/www/html/funerariasaopedro.net.br/web/crud/index.php(27): require_once('/var/www/html/f...') 
    #3 {main} thrown in /var/www/html/funerariasaopedro.net.br/web/crud/_conexao/Conexao.php on line 33

Classe de conexão:

    <?php
      
      namespace CONEXAO;
      
      use PDO; 
       
      class Conexao {
          
          private static $conexao;

          private static $hostname     = "server";     
          private static $port         = 3306; 
          private static $dbname       = "db";
          private static $username     = "user";
          private static $password     = "senha";

          
          public function __construct() {
            
            if (isset(self::$conexao))         {
             
                self::$conexao = self::$conexao;
                
            }  else {        
    
              
              try {
    
                 self::$conexao = new PDO('mysql:
                             host='.self::$hostname.';
                             port= '.self::$port.';
                             dbname='.self::$dbname, 
                             self::$username, 
                             self::$password
                                         );
    
              } catch (Exception $e) {
    
                self::$conexao = NULL;
    
                echo $e->getMessage();
    
              } 
    
            }
              
          }
          
          public function abreConexao() {
              
              return self::$conexao;
              
          }
    
        
          public function fechaConexao () {
              
              if (self::$conexao != null) {
                  
                  self::$conexao = null;
                  
              }
    
          }      
    
      }

O que pode ser isso?

Obs.: O mesmo código localmente funciona e os dados de conexão estão corretos no servidor.

As senhas do servidor já foram testadas ok.

 

A classe abaixo, com os mesmos dados, funciona:

<?php
 
 class Conexao {
   
    private $host     = "server";     
    private $user     = "user";
    private $password = "senha";
    private $db       = "db";
   
    
    private $conexao;
    
    public function abreConexao() {
        
        if (isset($this->conexao))         {
         
            return $this->conexao;
            
        }  else {        

                $this->conexao = new mysqli($this->host, $this->user, $this->password, $this->db);

                $this->conexao->set_charset("utf8");    

                return $this->conexao;
        }

    }
    
    public function fechaConexao () {
        
        if ($this->conexao != null) {
            
            $this->conexao = null;
            
        }
    }

  }

?>

 

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
M6

O que tens como servidor?

Se estás a usar localhost, experimenta  trocar por 127.0.0.1.


10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
carcleo

não!

O site está publicado.

Localhost funciona corretamente.

Sem referenciar a porta eu já tentei e deu erro também.
Vou contatar o servidor do UOL HOST e ver como eles qual a porta que eles usam.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

estou a ver que será mesmo problema do teu serviço, nada garante que o servidor esta na mesma máquina.

só mesmo entrando em contacto com eles

 

ps : não recebeste nenhum email com a informação de ligação ?


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
carcleo

vale dizer que os dados para conexão que coloquei na pergunta não são os usados na arquio de conexão com o banco.

essas variáveis que coloquei aqui são fictícias.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
carcleo

o problema era na minha conexão PDO.

 

Eu estava a fazer a string de dsn com quebras de linhas e não é permitido.

 

Obrigado!

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.