2.11 - Utilizando banco de dados MYSQL

Deploy de um MYSQL persistente através de um template no Openshift 3.11

Acesse o catalogo e selecione o MySQL

Agora preencha as informações conforme abaixo:

A tela seguinte será:

Após aguardar alguns minutos, o resultado final, será o container do mysql rodando no seu projeto:

Alteração da aplicação para apontar para o banco de dados persistente

Vamos mostrar uma lista de cidades cadastradas no banco de dados com essa aplicação. Para isso o primeiro passo será conectar a nossa aplicação já existente neste banco de dados, para isso precisamos adicionar o trecho de código abaixo ao arquivo index.php já existente.

<?php
echo "<h1>Openshift Workshop v2.0</h1> ";
echo $_SERVER['SERVER_ADDR'];
echo "<br><hr>";
echo "<h2>Cidades cadastradas no Banco de Dados:</h2>";
$conn = new mysqli("mysql", "redhat", "redhat", "workshop");
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
$result = $conn->query("SELECT nome FROM cidade");
if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
        echo "<h3>" . $row["nome"] . "</h3>";
    }
} else {
    echo "0 results";
}
$conn->close();
?>

Como a tabela que está sendo consultada ainda não existe você estará vendo que existem zero cidades cadastradas neste momento.

Popule o banco de dados a partir da sua máquina local

Para criar a nossa tabela que a nossa aplicação está consumindo os dados, vamos utilizar o recurso de port-forward. Este recurso permite que uma porta TCP remota possa ser acessada como se estivesse disponível localmente através do uso de túnels.

# Veja o nome do pod do mysql
oc get pods

# Execute o port forward
oc port-forward <pod id> 3306:3306

Caso você esteja usando um cluster somente seu (oc cluster up), não há necessidade de logar conforme mencionado acima. Basta executar o comando direto:

oc get pods
nohup oc port-forward <pod id> 3306:3306 &

O comando oc port-forward mantém o terminal preso enquanto estiver executando. Para continuar com os próximos passos, será necessário abrir um segundo terminal no nosso servidor.

Para executar os passos seguintes, é necessário instalar o mysql. Para isso, rode:

yum install mysql -y

Neste momento temos o MYSQL disponível "localmente", podemos conectar a ele com ferramentas gráficas ou como será demonstrado aqui com o mysql client. Lembre-se de abrir um outro terminal ou colocar o processo do port-forward em background. Importante é que ele deve estar rodando antes de executar o comando abaixo:

mysql -u redhat -h 127.0.0.1 -P 3306 --password=redhat --execute="USE workshop; CREATE TABLE cidade (id INT NOT NULL, nome VARCHAR(50) NOT NULL, PRIMARY KEY (id)); INSERT INTO cidade (id,nome) VALUES(1,'Rio de Janeiro'); INSERT INTO cidade (id,nome) VALUES(2,'Brasilia'); INSERT INTO cidade (id,nome) VALUES(3,'Recife');"

A saída do comando deve ser conforme abaixo:

Ao acessar novamente a interface de nossas aplicação a mesma deverá estar mostrando a lista de cidades incluídas neste passo.

Assim que todos os exercícios tiverem terminados, podemos parar o port-forward. Para isso, basta acessar o terminal em questão e executar um Ctrl + C.

Mais informações

Last updated