6
respostas

conectar em um Google cloud sql

Boa a noite a todos, tudo bem ?

Estou tentando conectar a API de cadastro dos médicos ao um banco de Cloud Google SQL ao invés de Local, porém retorna sempre o mesmo erro

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.

SQL State : 08S01 Error Code : 0 Message : Communications link failure

Pelo que validei todos os dados da configuração estariam corretos, assim gostaria de entender se estaria faltando alguma dependência que pudesse me impedir de conectar

poderiam me ajudar com essas duvidas? teriam como recomendar um serviço de Cloud que pudesse ajudar ? tem alguma limitação nesse projeto que impossibilitaria isso ?

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

6 respostas

Passo 1: Verificar a Conexão de Rede Verificar IPs Privados: Certifique-se de que o IP privado do seu servidor está corretamente configurado e que ele está na lista de IPs autorizados no Google Cloud SQL.

Firewall: Verifique se há regras de firewall que possam estar bloqueando a conexão. Certifique-se de que o firewall permite conexões na porta 3307 (ou a porta que você está usando).

Passo 2: Verificar Dependências Cloud SQL Connectors: Certifique-se de que você está usando a versão mais recente dos conectores de Cloud SQL para a sua linguagem de programação. Isso pode resolver problemas de compatibilidade.

Certificados SSL/TLS: Se estiver usando SSL/TLS, verifique se o certificado está corretamente instalado e configurado.

Passo 3: Usar o Cloud SQL Auth Proxy Proxy: Considere usar o Cloud SQL Auth Proxy, que pode simplificar a configuração e melhorar a segurança. O proxy lida com a autenticação e criptografia, facilitando a conexão.

Passo 4: Verificar Logs e Mensagens de Erro Logs do VPC: Verifique os logs do VPC para identificar possíveis erros de rede.

Logs do Servidor: Verifique os logs do servidor de banco de dados para obter mais detalhes sobre o erro.

Serviços de Cloud Alternativos Se você ainda estiver enfrentando problemas, pode considerar outros serviços de cloud que oferecem soluções robustas para bancos de dados, como:

Amazon RDS: Oferece uma solução de banco de dados relacional totalmente gerenciada.

Azure SQL Database: Solução de banco de dados relacional em nuvem com suporte a várias linguagens de programação.

Google Cloud Healthcare API: Ideal para aplicações de saúde, oferece integração com FHIR, HL7v2 e DICOM

Oi!

O erro acontece porque esse banco de dados que você está querendo utilizar não é o MySQL e sim o BigQuery do Google.

Para configurar o application.properties para se conectar a esse banco de dados:

spring.datasource.url=jdbc:bigquery://34.57.187.42:443;ProjectId=your_project_id
spring.datasource.username=your_username
spring.datasource.password=your_password

Lembre-se de substituir:

  • your_project_id: pelo ID do seu projeto Google Cloud.
  • your_username: pelo nome de usuário de acesso ao BigQuery.
  • your_password: pela senha de acesso ao BigQuery.

Para utilizar o BigQuery com Spring Boot, você precisará adicionar a dependência do driver JDBC do BigQuery ao seu projeto.

<dependency>
  <groupId>com.google.cloud</groupId>
  <artifactId>google-cloud-bigquery-jdbc</artifactId>
  <version>1.107.0</version>
</dependency>

Oi Professor Bom dia tudo bem ?

testei considerando como Big Query e vltou uma exception, acredito se tratar mesmo de um MySQL, mas caso não funcione,recomenda algum serviço de cloud para eu configurando e testando ?

Queria ver como ele subiria as informações para Cloud,então não precisa ser o Google exatamente

segue teste feito como Bigquery (tentei com a porta informada e a 3306, porém retorna a mesma falha

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

No Google Cloud existe a opção de ser o banco MySQL, ao invés do BigQuery: https://cloud.google.com/sql/mysql

Sim, esse que estou utilizando mesmo, segue as infos do Banco

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Perfeito. Pode excluir então a dependência do BigQuery no pom.xml e seguir esse passo a passo:

1. Criar um usuário com permissões específicas na instância MySQL

  • Acesse a Console do Google Cloud e vá até a seção SQL > Instâncias.
  • Selecione a instância MySQL que deseja conectar.
  • Na tela de detalhes da instância, vá em Usuários.
  • Clique em Criar usuário e configure as seguintes informações:
    • Nome de usuário: Defina um nome para o usuário (ex.: app_user).
    • Senha: Defina uma senha forte para o usuário.
    • Host: Utilize % para permitir acesso de qualquer host.
    • Privilégios: Selecione as permissões necessárias para o usuário, como SELECT, INSERT, UPDATE, DELETE.
  • Salve as alterações.

2. Configurar o Spring Boot para conectar ao banco de dados

  • Configure as informações de conexão no arquivo application.properties:
spring.datasource.url=jdbc:mysql://[ENDEREÇO_IP_DA_INSTANCIA]:[PORTA]/[NOME_DO_BANCO_DE_DADOS]
spring.datasource.username=[NOME_DE_USUARIO]
spring.datasource.password=[SENHA]

3. Obter o endereço IP da instância MySQL

  • Na Console do Google Cloud, acesse a seção SQL > Instâncias.
  • Selecione a instância MySQL que deseja conectar.
  • Observe o Endereço IP público da instância.

4. Obter o endereço IP da instância MySQL (opcional)

  • Em alguns casos, o endereço IP da instância pode mudar. Para evitar problemas, você pode configurar o Google Cloud para fornecer um endereço IP estático.
  • Acesse a Console do Google Cloud e vá até a seção Networking > Endereços IP.
  • Clique em Criar endereço IP.
  • Defina as informações necessárias, como Nome, Rede, Tipo e Região.
  • Selecione a instância MySQL e atribua o endereço IP estático a ela.

5. Validar a conexão

  • Inicie sua aplicação Spring Boot e verifique se a conexão com a instância MySQL está funcionando.

Lembre-se:

  • Substitua os valores entre colchetes (ex.: [ENDEREÇO_IP_DA_INSTANCIA]) pelas informações específicas da sua instância MySQL.
  • Certifique-se de que as portas necessárias (3306 para MySQL) estejam abertas no firewall do seu servidor.