Ciao.


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


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


Come risolvere questo errore?


Grazie

codice:
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());
        }   


    }
}