2
respostas

Timeout do mysql na abertura do sistema de notícias

Após subir o sistema de notícias para o kubernetes, ao informar a url no browser recebo a seguinte mensagem de erro no topo da tela:

PDOException Object ( [message:protected] => SQLSTATE[HY000] [2002] Connection timed out [string:Exception:private] => [code:protected] => 2002 [file:protected] => /var/www/html/funcoes.php [line:protected] => 7 [trace:Exception:private] => Array ( [0] => Array ( [file] => /var/www/html/funcoes.php [line] => 7 [function] => __construct [class] => PDO [type] => -> [args] => Array ( [0] => mysql:host=192.168.120.33;dbname=empresa [1] => root [2] => q1w2e3r4 ) ) [1] => Array ( [file] => /var/www/html/index.php [line] => 6 [args] => Array ( [0] => /var/www/html/funcoes.php ) [function] => include ) ) [previous:Exception:private] => [errorInfo] => )

Informo login e senha mas ao invés de me logar recebo a seguinte mensagem de erro:

PDOException Object ( [message:protected] => SQLSTATE[HY000] [2002] Connection timed out [string:Exception:private] => [code:protected] => 2002 [file:protected] => /var/www/html/funcoes.php [line:protected] => 7 [trace:Exception:private] => Array ( [0] => Array ( [file] => /var/www/html/funcoes.php [line] => 7 [function] => __construct [class] => PDO [type] => -> [args] => Array ( [0] => mysql:host=192.168.120.33;dbname=empresa [1] => root [2] => q1w2e3r4 ) ) [1] => Array ( [file] => /var/www/html/index.php [line] => 6 [args] => Array ( [0] => /var/www/html/funcoes.php ) [function] => include ) ) [previous:Exception:private] => [errorInfo] => ) Fatal error: Call to a member function prepare() on null in /var/www/html/funcoes.php on line 35

Acrescento que na aula 1 o sistema funcionava normalmente, só parou de subir após o sistema ir para o kubernetes

2 respostas

No meu caso tive o mesmo problema. Não tenho certeza, mas acho que é devido eu estar usando a virtualização do Hyper-V e a VM minikube não tem permissão de acesso a VM do Docker (DockerDesktopVM) onde está o MySql. Minha solução foi abstrair o banco de dados em um servidor remoto gratuito (https://remotemysql.com/) ajustei o arquivo bancodedados.php apontando para esse novo banco, onde rodei os scripts para a criação das tabelas. Bom, essa foi a minha solução temporária já que não tenho muito conhecimento em PHP + MySql para que eu pudesse dar continuidade ao curso.

Olá Tarcisio, tudo bem? A solução do bdiogo deve funcionar também, porém acho que o erro é só a questão da comunicação com o container do MySQL, para resolver você pode pegar o IP real da sua máquina, (o IP que sua máquina recebe da rede local) e colocar na variável $hostdentro do arquivo bancodedados.php e então você pode atualizar a página de login do painel.

Isso deve resolver!