IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JDBC Java Discussion :

Erreur de communication entre JDBC(sur Android) et mysql


Sujet :

JDBC Java

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2013
    Messages : 33
    Points : 28
    Points
    28
    Par défaut Erreur de communication entre JDBC(sur Android) et mysql
    Bonjour,
    J'ai installé JDBC sur Intellij IDEA en vue de récupérer des données présentes sur une base mysql
    Il s'agit d'une application Android, pour l'instant ma base se trouve sur l'ordinateur où je développe
    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
     
    package com.example.prototype1;
     
    import android.app.Activity;
    import android.app.AlertDialog;
    import android.content.Intent;
    import android.os.AsyncTask;
    import android.os.Bundle;
    import android.os.StrictMode;
    import android.view.View;
    import android.widget.EditText;
    import android.widget.TextView;
     
    import java.sql.Connection;
    import java.sql.DriverManager;
     
    /**
     * Created by Hatsrog on 23/02/2015.
     */
    public class detailsAnalyse extends Activity
    {
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.detailsanalyse);
            Intent intent = getIntent();
            String analyseText = intent.getStringExtra("analyseText");
            TextView intituleAnalyse =(TextView)findViewById(R.id.intituleAnalyse);
            intituleAnalyse.setText("Analyse :"+ analyseText.toString());
            TacheAsynchrone tacheAsynchrone = new TacheAsynchrone();
            tacheAsynchrone.execute();
        }
     
        public void activitePrecedente(View view)
        {
            super.onBackPressed();
        }
     
        private class TacheAsynchrone extends AsyncTask<Void, Integer, String> {
            @Override
            protected String doInBackground(Void... arg0){
                String string = "";
                Connection connection = null;
                try {
                    Class.forName("com.mysql.jdbc.Driver");
                    connection = DriverManager.getConnection("jdbc:mysql://192.168.1.70:3306/test", "root", "root");
                } catch (Exception e) {
                    e.printStackTrace();
                }
     
                return string;
            }
     
            @Override
            protected  void onPostExecute(String result){
     
            }
        }
    }
    j'ai essayé de nombreuses choses, apparemment je n'ai pas touché au port par défaut de mysql (3306)
    j'utilise mysql_connector_java_5_1_18

    Lors du débogage, l’exception catch se déclenche ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    connection = DriverManager.getConnection("jdbc:mysql://192.168.1.70:3306/test", "root", "root");
    Avec cette erreur :
    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.

    Merci pour votre aide

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2013
    Messages : 33
    Points : 28
    Points
    28
    Par défaut
    j'ai rajouté cela au Manifest :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <uses-permission android:name="android.permission.INTERNET"></uses-permission>
    Puis, j'ai installé une version de JDBC plus récente : 5.1.34

    Mais j'ai toujours le même problème

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2013
    Messages : 33
    Points : 28
    Points
    28
    Par défaut
    Il me semble que c'est un problème lié à la communication entre mon mobile et le serveur mysql car je viens de faire des essais sur machine virtuelle Android et la connexion se réalise sans encombre

  4. #4
    Modérateur
    Avatar de MasterMbg
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 719
    Points : 1 493
    Points
    1 493
    Par défaut
    Citation Envoyé par Hatsrog Voir le message
    Il me semble que c'est un problème lié à la communication entre mon mobile
    We, MySQL par défaut bloque la connexion de l'extérieur. Tu dois configurer que MySQL accepte TOUTES connexions externes (Exposer son serveur, déconseillé). Soit, tu passes à une architecture 3-tiers dans laquelle le serveur d'application et le serveur de base de données seraient sur le même poste, dans ce cas le serveur d'application mettrait à la disposition du client Android une liste des services qu'il appellerait afin d'interroger la base de données. L'accès à la base de données ne se limiterait alors qu'à localhost et la sécurité du serveur MySQL serait alors garantie.
    Plus tu apprends sérieusement, plus tu te rapproches d'un savoir noble. Une chose est certaine, les difficultés ne s'écarteront de ton chemin...

    Tu es nouveau dans le développement Android, la page des COURS est là pour te faciliter la vie
    Tu peux trouver la réponse à ta question dans la FAQ
    Retrouvez mon tutoriel sur la consommation des services web SOAP
    Pense à voter positivement en appuyant sur en bas à droite de la réponse qui t'a donné une piste de solution.

Discussions similaires

  1. Réponses: 3
    Dernier message: 14/12/2016, 11h48
  2. Communication entre serveurs sur des sites distants
    Par yakatebayo dans le forum Administration
    Réponses: 5
    Dernier message: 06/05/2013, 12h00
  3. Réponses: 0
    Dernier message: 26/04/2013, 21h55
  4. Réponses: 0
    Dernier message: 16/05/2011, 21h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo