2
respostas

Erro ao listar Alunos no navegador

Olá, para avançar nos tópicos da aula me propus a fazer 2 mudanças:

1) trocar o banco de dados de sqlLite para MariaDB (tudo certo!)

2) listar os alunos direto no navegador ao invés de listar no terminal

Copiei o código do /commands/buscar-alunos.php para o index.php do meu servidor.

Porém ao acessar via navegador recebo o seguinte erro:

Fatal error: Uncaught PDOException: SQLSTATE[HY000] [2002] Connection refused in /var/www/html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php on line 112

( ! ) Doctrine\DBAL\Exception\ConnectionException: An exception occurred in driver: SQLSTATE[HY000] [2002] Connection refused in /var/www/html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php on line 112

O meu código do index.php esta assim:

<?php
use Alura\Doctrine\Entity\Aluno;
use Alura\Doctrine\Helper\EntityManagerFactory;

require_once __DIR__ . '/vendor/autoload.php';

$entityManagerFactory = new EntityManagerFactory();
$entityManager = $entityManagerFactory->getEntityManager();

// lista todos os Alunos
$alunoRepository = $entityManager->getRepository(Aluno::class);
$alunoList = $alunoRepository->findAll();

/**
 *  $var Aluno[] $alunoList
 */
foreach ($alunoList as $aluno) {
    echo "ID: {$aluno->getId()} \nNome: {$aluno->getNome()}\n\n";
}

Quando executo o mesmo código no buscar-alunos.php no terminal funciona perfeitamente.

Consigo também me conectar ao banco via PHP Storm como o Vinicius ensinou na aula e também me conectar via cliente mysql externo.

Não entendi, pois apesar do banco estar tudo ok, esta recusando a conexão quando ela é solicitada no index.

Alguém já passou por algo semelhante?

Grato!

2 respostas

Na verdade, se eu executar o commands/buscar-alunos.php no terminal como no video funciona, mas quando executo no navegador o mesmo código retorna este mesmo erro acima.

Estou usando Docker para subir o servidor, consigo me conectar a partir de um cliente externo sem problema também.

Os dados de conexão são:

        $connection = [
            'dbname' => 'doctrine_2020',
            'user' => 'root',
            'password' => 'root',
            'host' => '127.0.0.1:8011',
            'driver' => 'pdo_mysql'
        ];

Olá Marcelo,

Eu vi em outro tópico que talvez seja a versão do mysql, se estiver com a versão 8 testa voltar para a versão 5.7 e ver se funciona.

https://cursos.alura.com.br/forum/topico-docker-mysql-sqlstate-hy000-2002-connection-refused-88595

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software