1
resposta

Não consigo conectar no sistema de notícias

Pessoal,

Assim como várias outras pessoas, estou tendo dificuldades para acessar o sistema de notícias. Meu OS é um Linux Mint 19.3 Cinnamon.

Quando eu sigo a orientação do professor e altero a variável $host para recebeu o meu IP, o sistema exibe a seguinte mensagem:

PDOException Object ( [message:protected] => SQLSTATE[HY000] [1045] Access denied for user 'root'@'172.18.0.1' (using password: YES) [string:Exception:private] => [code:protected] => 1045 [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.0.20;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] => )

Vi em um outro post (https://cursos.alura.com.br/forum/topico-falha-conexao-ao-banco-106207) a orientação do Jonilson para informar naquela variável o IP do container do mySQL. Nesse caso, o sistema demora bastante para carregar a tela e por fim apresenta a seguinte mensagem:

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=172.21.0.2;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] => )

OBS: essa informação é a mesma quando eu informo o IP padrão do docker ( 172.17.0.1).

Ainda seguindo a orientação do Jonilson, usei a estratégia de alterar o "docker-compose.yml" da raíz do projeto para adicionar o trecho "links: - db", e na variável "$hosts", informar o valor "db", porém, ao tentar rodar o comando "docker-compose up -d", o terminal me retorna a seguinte mensagem:

ERROR: Service 'sistema_web' has a link to service 'db' which is undefined.

Agradeço se alguem puder me ajudar!

1 resposta

Olá Nicholas, tudo bem? Vou pedir para que você faça o procedimento que indiquei nesse outro tópico:

1) Primeiro excluam todos os containers criados, com o comando: docker-compose down;

2) Agora é necessário fazer as seguintes modificações:

2.1) Alterar o arquivo docker-compose.yml da pasta mysql, e remover a variável MYSQL_USER, o arquivo completo deve ficar da seguinte forma:

version: '3.7'
services:
  db:
    image: mysql:5.7
    container_name: banco_mysql
    volumes:
      - ./:/home

    ports:
      - '3306:3306'
    environment:
      MYSQL_DATABASE: 'empresa'
      MYSQL_PASSWORD: 'q1w2e3r4'
      MYSQL_ROOT_PASSWORD: 'q1w2e3r4'

2.1) colocar o IP 172.21.0.1 ** no arquivo **bancodedados.php, ele deve ficar assim:

<?php
$host = "172.17.0.1";
$usuario = "root";
$senha = "q1w2e3r4";
$banco = "empresa";

?>

3) Agora vocês precisam navegar até a pasta mysql pelo terminal e executar o passo a passo:

  • Subir o container do mysql com o comando: docker-compose up -d;
  • Depois entrar dentro do container com o comando: docker exec -it banco_mysql bash;
  • E entrar na pasta home do container com o comando: cd /home;
  • Agora vocês devem executar os comandos abaixo para importar as tabelas (um por vez):
mysql -u root -p empresa < empresa_usuario.sql

mysql -u root -p empresa < empresa_noticias.sql
  • Agora para sair do mysql basta executar o comando exit e para sair do container executem também o comando exit.

4) Agora que o MySQL já está pronto, vocês devem retornar a pasta raiz, basta usar o comando cd ..;

5) Agora vocês devem subir os containers das notícias e do sistema de notícias, para isso executem o seguinte comando:

docker-compose up -d

6) Agora já devemos acessar tudo normalmente pelos endereços:

Fala se se funcionou!