Ir ao conteúdo

Posts recomendados

Postado

Eu quero que meu aplicativo se conecte a um servidor mysql que está no meu computador. O servidor já está funcionando e recebendo conexões normalmente (eu testei).

 

No código do aplicativo (que estou desenvolvendo no Android Studio no mesmo computador do servidor), eu estou tentando me conectar da seguinte forma:

 

Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://MEU_IP:3306/app300","usuario","senha");

 

substituindo MEU_IP pelo ip do meu computador.

 

Ao rodar o código, ele joga a seguinte exceção na segunda linha de código acima: Communications link failure. The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.

 

Eu já tentei colocar o IP local do meu computador, o IP externo, a palavra localhost, mas nada dá certo.

 

O que estou fazendo de errado?

Postado

Não duvido que seja possível.
Mas em geral o pessoal usa o banco de dados nativo do Android.

E pra acessar dados de servidores, se usa WebServices.
Em geral é isso que a galera faz..

Só vai usar dados do prório Android, pra informações próprias do cliente e ainda assim é raro.

Postado

Primeiramente, este trecho do seu código está errado, não? 

16 minutos atrás, RO17 disse:

Connection = con =

Não deveria ter um = entre Connection e o con, apenas o segundo.

 

Esse erro é bem genérico: não foi possível se conectar ao banco, e isto tem infinitas possibilidades de causas.

Algumas delas pra verificar:

Seu banco local está no ar?

A porta dele é a 3306 mesmo ou você a alterou? Seu firewall está bloqueando esta porta?

A base app300 existe?

A consulta que está tentando fazer está correta?

 

Não sei se existe algum problema específico entre Android e o MySql.

Postado

@Gabriel Merlo Ferreira O = está correto no código. Eu que digitei errado aqui no post mas já corrigi agora.

 

O banco está no ar sim, tanto que já acessei ele através de outras máquinas e funcionou.

A porta é 3306 sim. O firewall não está bloqueando.

A base app300 existe.

Ele nem chega na consulta, pois o erro acontece antes, naquela linha de código que está no post.

Postado
3 minutos atrás, RO17 disse:

O = está correto no código. Eu que digitei errado aqui no post mas já corrigi agora.

Sim, eu tinha imaginado isso.

 

Vamos ver...

Dá uma olhadinha aqui: https://stackoverflow.com/questions/2983248/com-mysql-jdbc-exceptions-jdbc4-communicationsexception-communications-link-fai

Dos pontos analisados, os que eu não citei antes são: Hostname in JDBC URL is not recognized by local DNS server.; DB server doesn't accept TCP/IP connections. e Something in between Java and DB is blocking connections, e.g. a firewall or proxy.

 

Vale tentar.

Desculpa estar te dando resposta rasas, é que estou no trabalho e não posso me dedicar melhor. Ainda assim espero te ajudar de alguma forma.

adicionado 12 minutos depois

Aparentemente Android não suporta MySQL nativamente, então o mais comum é o consumo através de api Rest.

Se isso for possível para você, acho este o melhor caminho.

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...