Autore Topic: Could not create connection to database server  (Letto 1333 volte)

Offline ccmex

  • Nuovo arrivato
  • *
  • Post: 41
  • Respect: 0
    • Mostra profilo
Could not create connection to database server
« il: 03 Febbraio 2014, 23:10:23 CET »
0
Ciao.

Ho creato un'applicazione android con connessione driver JDBC ad un database MySQL 5.6
Ma quando eseguo il debug nel mio smartphone, ottengo questo errore:

com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:
Could not create connection to database server. Attempted reconnect 3 times.
Giving up

Come risolvere questo errore?

grazie

Offline Reinhard

  • Utente junior
  • **
  • Post: 85
  • Respect: +16
    • Google+
    • rspisser
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5 Lollipop 5.1
  • Play Store ID:
    rspisser
  • Sistema operativo:
    Windows 7
Re:Could not create connection to database server
« Risposta #1 il: 03 Febbraio 2014, 23:22:03 CET »
0
quale è la stringa di connessione utilizzata?

il server dove è installato mysql è visibile dallo smartphone?

Offline ccmex

  • Nuovo arrivato
  • *
  • Post: 41
  • Respect: 0
    • Mostra profilo
Re:Could not create connection to database server
« Risposta #2 il: 04 Febbraio 2014, 17:16:21 CET »
0
quale è la stringa di connessione utilizzata?

il server dove è installato mysql è visibile dallo smartphone?

Grazie per la risposta, di seguito la classe java che uso per provare a collegarmi a mysql.
Come faccio a sapere se il server dove è installato mysql è visibile dallo smartphone?
Sul firewall ho abilitato la porta 3306 come eccezione.
Codice: [Seleziona]
package com.ccmex.mysql;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class MainActivity extends Activity {

    private static final String url = "jdbc:mysql://localhost:3306/world?autoReconnect=true";
    private static final String user = "XXXXXX";
    private static final String pass = "XXXXXX";

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        testDB();
    }

    public void testDB() {
            TextView tv = (TextView)this.findViewById(R.id.textView1);
        try {
            Class.forName("com.mysql.jdbc.Driver");
            Connection con = DriverManager.getConnection(url, user, pass);
            /* System.out.println("Database connection success"); */

            String result = "Database connection success\n";
            Statement st = con.createStatement();
            ResultSet rs = st.executeQuery("select * from city;");
            ResultSetMetaData rsmd = rs.getMetaData();

            while(rs.next()) {
                    result += rsmd.getColumnName(1) + ": " + rs.getInt(1) + "\n";
                    result += rsmd.getColumnName(2) + ": " + rs.getString(2) + "\n";
                    result += rsmd.getColumnName(3) + ": " + rs.getString(3) + "\n";
            }
            tv.setText(result);
        }
        catch(Exception e) {
            e.printStackTrace();
            tv.setText(e.toString());
        }   

    }
}

Offline Reinhard

  • Utente junior
  • **
  • Post: 85
  • Respect: +16
    • Google+
    • rspisser
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5 Lollipop 5.1
  • Play Store ID:
    rspisser
  • Sistema operativo:
    Windows 7
Re:Could not create connection to database server
« Risposta #3 il: 04 Febbraio 2014, 17:23:43 CET »
0

Codice (Java): [Seleziona]
jdbc:mysql://localhost:3306/world?autoReconnect=true
al posto di localhost dovresti mettere il nome o indirizzo ip del server.

Lo smartphone e il server devono stare nella stessa rete. prova a fare un ping dal server verso il tuo smartphone e vedere se ti risponde


Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Could not create connection to database server
« Risposta #4 il: 04 Febbraio 2014, 17:26:28 CET »
+1
Come detto da Reinhard, il problema è quasi sicuramente nell'IP che usi (cioè localhost). Avendo messo localhost probabilmente stai provando sull'emulatore, che non si affaccia sulla stessa rete locale del pc su cui gira, ma è dietro un NAT. Devi quindi usare l'IP dietro al quale è mappato il localhost (dovrebbe essere 10.0.2.2).

Trovi info qua Using the Emulator | Android Developers nella sezione Emulator networking
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline ccmex

  • Nuovo arrivato
  • *
  • Post: 41
  • Respect: 0
    • Mostra profilo
Re:Could not create connection to database server
« Risposta #5 il: 04 Febbraio 2014, 17:38:43 CET »
0
Grazie per le risposte.
Sto provando questa connessione direttamente su un tablet acer android.
Ho provato così, ma sicuramente non ho capito perchè ho lo stesso errore:
Codice: [Seleziona]
"jdbc:mysql://127.0.0.1:3306/world?autoReconnect=true";
Poi quando lancio il test da eclipse il primo va bene i successivi rispondono con
Citazione
[2014-02-04 17:37:36 - MySql] Android Launch!
[2014-02-04 17:37:36 - MySql] adb is running normally.
[2014-02-04 17:37:36 - MySql] Performing com.ccmex.mysql.MainActivity activity launch
[2014-02-04 17:37:39 - MySql] Application already deployed. No need to reinstall.
[2014-02-04 17:37:39 - MySql] Starting activity com.ccmex.mysql.MainActivity on device 13111998415
[2014-02-04 17:37:39 - MySql] ActivityManager: Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.ccmex.mysql/.MainActivity }
[2014-02-04 17:37:39 - MySql] ActivityManager: Warning: Activity not started, its current task has been brought to the front
e sono costretto a riavviare eclipse...  :-(

Post unito: 04 Febbraio 2014, 18:56:09 CET
Sto provando così ma ho lo stesso errore:
Codice: [Seleziona]
private static final String url = "jdbc:mysql://192.168.1.91:3306/world?autoReconnect=true";Se faccio il ping di 192.168.1.91 risponde correttamente... l'IP l'ho preso dalle impostazioni wi fi del tablet ... cosa posso fare di piu'?
« Ultima modifica: 04 Febbraio 2014, 18:56:09 CET da ccmex, Reason: Merged DoublePost »

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Could not create connection to database server
« Risposta #6 il: 05 Febbraio 2014, 08:08:21 CET »
0
Ma scusa, il server MySql gira forse sul tablet (127.0.0.1) o all'indirizzo 192.168.1.91 ?

NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline ccmex

  • Nuovo arrivato
  • *
  • Post: 41
  • Respect: 0
    • Mostra profilo
Re:Could not create connection to database server
« Risposta #7 il: 05 Febbraio 2014, 19:57:14 CET »
0
Ma scusa, il server MySql gira forse sul tablet (127.0.0.1) o all'indirizzo 192.168.1.91 ?


Il server MySQL è installato e gira funzionando sull'indirizzo ip 192.168.1.91
Funziona perchè con le credenziali user e password implementate nella classe java accedo regolarmente al db MySQL

Offline Nicola_D

  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:Could not create connection to database server
« Risposta #8 il: 24 Febbraio 2014, 11:22:36 CET »
0
il messaggio che visualizzi non è un errore, ma l'ide ti sta dicendo che non verrà reinstallata l'app perchè questa versione l'hai già aperta.
Se non cambi il codice eclipse non rilancia l'app, te la devi rilanciare a mano tu dal device...
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline ccmex

  • Nuovo arrivato
  • *
  • Post: 41
  • Respect: 0
    • Mostra profilo
Re:Could not create connection to database server
« Risposta #9 il: 26 Febbraio 2014, 21:24:34 CET »
0
Grazie