2012-12-03 14 views
8

Ben mysql database bağlanmayı denedi ama başarısız oldu ve bu hata İletişim bağlantı hatası Sunucuya gönderilen son paket 1 msn önce.

Communications link failure Last packet sent to the server was 1 ms ago 

gösterilir ve bu benim kodudur? Herkes

package android_programmers_guide.testconnection; 


import java.sql.Connection; 
import java.sql.DriverManager; 

import android.os.Bundle; 
import android.app.Activity; 
import android.graphics.Color; 
import android.view.Menu; 
import android.widget.EditText; 

public class TestConnection extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_test_connection); 



      Connection conn = null; 
      String url = "jdbc:mysql://127.0.0.1:3306/test"; 
      String driver = "com.mysql.jdbc.Driver"; 
      String userName = "root"; 
      String password = "root"; 


      try { 
      Class.forName(driver).newInstance(); 
      conn = DriverManager.getConnection(url,userName,password); 


      EditText editText=(EditText) findViewById(R.id.editText1); 


      editText.setBackgroundColor(Color.GREEN); 
      editText.setText("Connected to the database"); 

      conn.close(); 

      editText.setBackgroundColor(Color.BLUE); 
      editText.setText("Disconnected from database"); 


      } catch (Exception e) { 
      e.printStackTrace(); 
      } 



    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.activity_test_connection, menu); 
     return true; 
    } 

} 
+0

Lütfen bu URL'yi kontrol edin http://stackoverflow.com/questions/2839321/java-connectivity-with-mysql/2840358#2840358 – raju

+0

MySQL veritabanınızın çalıştığından emin misiniz? ya da belki android_programmers_guide.testconnection sınıfı android cihazda bir veritabanına bağlanmaya çalışıyor – ClydeFrog

+0

veritabanım çalışıyor, üzgünüm ikinci bölümü anlamadım. Java'da begginer –

cevap

0

android uygulama aynı sistemde mysql iletişim kuramaz bana lütfen yardımcı olabilir. Çünkü, android uygulamasını çalıştırdığınızda, emülatör'un içinde çalışır. Emülatör, bir android cihaz gibi bir virtual mobile device. emülatörü'un kendisi ip adresine sahiptir. Yani, uygulamaya göre ip127.0.0.1 nedenle android uygulama emülatörü olduğunu mysql ile iletişim kurmaya çalışacaktır, öykünücüsü'nın ip olduğunu. Bildiğimiz gibi, emülatörde mysql bulunamaz, iletişim başarısız olur. Veri deposu için SQLite'u kullanabilirsiniz. Android uygulamanızın mysql ile iletişim kurmasını istiyorsanız, başka bir sistemde mysql yüklemeniz ve bu sistemin ip ürününü vermeniz gerekir. aşağıdaki gibi kodunuzu değiştirin:

String url = "jdbc:mysql://192.168.1.102:3306/test"; 

İşte, 192.168.1.102 ikinci sistemin ip olduğunu belirtti. Ve denemeden önce bu sistemlerin fiziksel bağlantısını yapmayı unutma.

Ek bilgi için:Android uygulaması ile mysql'un doğrudan iletişimi uygun bir yol değildir. mysql ile iletişim kuran bir web uygulaması yapın. Veriyi mysql içine kaydetmek için bir web service ekleyin. Android uygulamasında web uygulamasıyla bu web hizmeti aracılığıyla iletişim kuran bir web katmanı ekleyin. Web uygulamasından web uygulamasına web uygulamasından veri aktarımı için xml veya JSON'u kullanabilirsiniz. Web uygulaması depolanıyor olmalıdır android uygulamasının web servis çağrısı tarafından alınan mysql veri.

1

Bu sorun, geçirdiğiniz URL çalışmadığından kaynaklanmaktadır.

Kontrol aşağıdaki şeyler:

  1. senin localhost MySQL
  2. \s yazarak MySQL durumunu kontrol çalıştığından emin olun.
  3. Bağlantı noktası numarasını kontrol edin ve aynı ürünü kullandığınızdan emin olun.

Yukarıdakilerin tümü doğruysa, izinleriniz yoktur.

"Parola" ile tanımlanmak için grant all on *.* kullanın, sonra da temizleme ayrıcalıklarını çalıştırın ve ile 127.0.0.1 değiştirin ve yeniden bağlanmayı deneyin.