Criando uma instância do MySQL no Oracle Cloud + Conectando-se com MySQL Workbench

Por Loiane Groner Groundbreaker Ambassador
Publicado em Abril 2019

Revisado por Juan Pablo Guizado




Neste artigo, será demonstrado como criar passo a passo e configurar uma instância do MySQL no Oracle Cloud.

MySQL é o banco de dados open source mais popular, e pode-se configurar de forma fácil no Oracle Cloud. O banco de dados configurado nesse artigo será usado como banco de dados na nuvem da aplicação que foi desenvolvida nesse artigo (https://www.oracle.com/technetwork/pt/articles/dsl/crud-rest-sb2-hibernate-5302424-ptb.html).


Para completar o desenvolvimento deste tutorial serão necessárias as seguintes ferramentas:

  • Acesso ao Oracle Cloud (pode criar uma conta de teste - com $300 dólares de créditos para serem usados por 30 dias.
  • MySQL Workbench para poder acessar o banco de dados com uma interface amigável do seu computador local.




Criando uma instância MySQL



Faça login na sua conta do Oracle Cloud e acesse o dashboard. O link de acesso se parece com https://myservices-xxxxxx.console.oraclecloud.com/mycloud/cloudportal/dashboard.

Clique no ícone do menu (ícone hambúrguer) -> Services. Faça scroll até encontrar e clique em MySQL como mostrada pela figura abaixo:




O Console das instâncias do MySQL será aberto. Caso não tenha nenhuma instância criada, verá algo como a figura a seguir. Clique em Create Istance (Criar instância):




Informe o nome da instância e escolha a região onde o banco de dados será criado. Também é possível criar tags para identificar de forma mais fácil a finalidade do banco de dados:




Em seguida, informe os detalhes do banco de dados a ser criado (os valores padrões já vem populados), como usuário e senha da pessoa que irá administrar o banco de dados, poder computacional será necessário (depois poderá mudar e escalar/aumentar o poder computacional conforme necessário), configuração de backup (se estiver criando uma instância para testes ou ambiente de desenvolvimento pode selecionar none para não fazer backup, mas lembre-se que é sempre recomendável ter backup para instâncias de produção):


A explicação completa de todos os campos que estão disponíveis na tela acima pode ser encontrada na documentação oficial da Oracle: https://docs.oracle.com/cloud/latest/mysql-cloud/UOMCS/GUID-2F521651-8B58-4719-B96C-B087AB1FF69D.htm#UOMCS-GUID-2F521651-8B58-4719-B96C-B087AB1FF69D.



Também será necessário configurar uma chave pública SSH, que poderá ser usada para logar na instância da máquina virtual na qual o serviço MySQL é executado. Se já tiver uma chave pública SSH, pode informar os detalhes, caso contrário, clique em Edit(Editar) e selecione Create a New Key (Criar uma nova Chave) e clique em Enter.
Não esqueça de fazer o download do arquivo sshkeybundle.zip que contém as chaves pública e privada. O assistente (wizard) irá popular os detalhes automaticamente.




O próximo passo é clicar em Next (Próximo), revisar e confirmar os detalhes clicando em Create (Criar):




Em seguida, o serviço será criado. Se voltar para a página do console do Oracle MySQL Cloud Service verá que o serviço está sendo criado.




Esse processo pode levar até cerca de 30 minutos. Será enviado um email para o endereço de email informado na terceira imagem mostrada no início deste artigo:






Explorando a instância do Oracle MySQL Cloud Service



Uma vez que o serviço é criado, pode-se clicar na instância para ter uma visão geral do serviço:


No canto direito superior tem-se nos botões para iniciar, parar e reiniciar o serviço e também ver as informações de monitoramento.


No final da página (Associations) também pode-se ver todos os outros serviços Oracle Cloud que estão associados ou estão usando esse banco de dados. Nesse exemplo existe uma aplicação Java usando esse banco de dados (como associar a aplicação ao banco de dados será demonstrado no próximo artigo). Essa informação é bem útil para evitar parar ou até mesmo excluir o banco de dados por acidente.

E caso seja necessário, também é possível escalar ou diminuir o poder computacional conforme a necessidade:




Para escalar ou mudar a configuração, é necessário escolher a opção Scale Up/Down e selecionar a nova opção:




Para adicionar mais capacidade de armazenamento, o processo é bem similar aos passos acima, porém, a opção a ser escolhida é Add Storage. Para ambos os casos, quando clicar no botão Yes (Sim), o serviço ficará temporariamente indisponível. Para esses passo, o recomendado é fazer isso durante um horário em que usuários não estejam acessando a aplicação em produção (chamada de green zone - zona verde por algumas empresas), já que o banco de dados ficará offline por uns minutos.






Conectando ao MySQL através do acesso SSH



Agora que a instância foi criada e já exploramos suas opções gerais, é hora de conectar ao banco de dados. A primeira forma de se fazer isso é através de acesso SSH.

Para rever as opções, clique no menu “hambúrguer” e clique em SSH Access:




Também é possível acessar essa opção a partir da lista de instância da página de console:




Quando clicar na opção do menu chamada SSH Access, verá uma popup para fazer upload de uma nova chave pública SSH. Quando a instância foi criada, tivemos a chance de criar uma chave SSH nova - essa chave pública criada anteriormente é a que já está listada na imagem abaixo, então nenhuma ação é necessária. Porém, caso precise adicionar uma nova chave, essa opção também está disponível.




Agora que o acesso SSH está pronto, podemos nos conectar na máquina virtual a partir do terminal. Pode usar o aplicativo Terminal do Linux ou Mac. Se estiver usando Windows, pode usar o PuTTY.

O primeiro passo é confirmar que o arquivo privateKey (chave privada) pode ser lido e acessado (permissão read e write) pela máquina virtual, senão teremos problemas ao tentar se conectar na máquina virtual onde está o banco de dados MySQL. Para isso, a partir do terminal, mude para o diretório onde está localizado o arquivo privateKey e execute o seguinte comando:

chmod 600 privateKey


O comando acima irá permitir leitura e escrita no arquivo para o proprietário da máquina.

É importante lembrar que o comando só funciona em terminais Linux e Mac. Caso esteja usando Windows, clique com o botão direito em cima do arquivo, vá em Properties/Propriedades e depois Security/Segurança. Selecione as permissões Read e Write.

Em seguida, é necessário obter o IP público da instância, como mostrado na imagem a seguir:




Com o IP e o arquivo privateKey, pode-se fazer login SSH na máquina virtual usando o usuário ocp com o comando abaixo:

ssh -i privateKey opc@129.150.173.251





Assim que o login é feito, pode-ser o prompt de comando da instância da máquina virtual onde se encontra o banco de dados MySQL.

Em seguida, para conseguir acessar os comandos do banco de dados (create database, selects, inserts, etc), é necessário trocar o usuário para acesso de administrador com o usuário oracle. Para isso pode-se usar o comando a seguir:

sudo su oracle





Assim que logar com permissões de admin, pode-se executar o comando mysql e listar os bancos disponíveis (show databases;):


A partir desse ponto, é possível executar comandos SQL, criar novos schemas, tabelas, executar scripts de insert, update, delete, etc.

Esses passos são muito úteis de se saber quando não tem-se acesso à uma interface gráfica (apenas tem-se acesso ao terminal).






Conectando-se ao banco de dados MySQl na nuvem com o MySQL Workbench



Para se conectar ao banco de dados que foi criado na nuvem tem-se duas opções: a primeira é através de SSL e a segunda é a versão clássica através de usuário/senha.

Nessa sessão será demonstrado como conectar com usuário/senha, já que o MySQL Workbench também pode ser usado por desenvolvedores e essa é a forma mais comum para que desenvolvedores se conectem usando uma interface gráfica. O MySQL Workbench também possui um assistente passo a passo caso queira se conectar usando SSL.

Crie uma nova conexão a partir do MySQL Workbench, informe o IP público da instância onde se encontra o banco de dados, o usuário e senha. Para esse exemplo pode-se usar a mesma senha da criação da instância, porém, dependendo da finalidade do banco de dados (dev, qa), é melhor criar um novo usuário e não usar o usuário de admin.




Se tentar conectar nesse momento (Test Connection, testar conexão), a conexão irá falhar. Por padrão, as instâncias MySQL criadas no Oracle Cloud não podem ser acessadas com usuário/senha de forma pública (fora do ambiente da nuvem). Para mudar essa permissão, é necessário modificar as regras da instância. Para fazer isso, pode-se acessar o menu da instância (o mesmo usado no acesso SSH), porém clique em Rules (Regras):




Cliquei no menu de Action (ações) para habilitar (Enable) ou desabilitar (Disable) as regras conforme a necessidade. Para o acesso do MySQL Workbench a partir de um computador local, é necessário habilitar a regra de “public internet” na porta 3306. Feito isso, pode tentar testar a conexão novamente e dessa vez irá funcionar com sucesso:




Agora pode abrir o painel de administração e executar os scripts MySQL em um ambiente mais amigável!






Conclusão



Nesse artigo foi demonstrado como criar uma instância MySQL no Oracle Cloud, como conectar na máquina virtual da instância através de uma conexão SSH e como se conectar de forma pública usando o MySQL Workbench. No próximo artigo, iremos associar o conteúdo do primeiro artigo (https://www.oracle.com/technetwork/pt/articles/dsl/crud-rest-sb2-hibernate-5302424-ptb.html) a esse artigo, ou seja, atualiza o código da aplicação para que se conecte no banco e dados MySQL na nuvem e também será demonstrado como fazer o deploy na nuvem e associar o banco MySQL com variáveis de ambiente.

Referências:




Loiane Groner trabalha com desenvolvimento de software há mais de 10 anos e atualmente trabalha como analista de negócios e desenvolvedor sênior de Java / HTML5 / JavaScript em uma instituição financeira americana. Loiane é autora de livros para Packt Publishing, e teve a oportunidade de falar em algumas conferências sobre desenvolvimento Java, JavaScript, Sencha, Ionic, Angular e moderno. Em seu tempo livre, ela publica artigos em seu blog https://loiane.com e tutoriais em vídeo em https://loiane.training.

Este artigo foi revisto pela equipe de produtos Oracle e está em conformidade com as normas e práticas para o uso de produtos Oracle