2016-04-14 30 views
1

'u kullanarak jdbc mysql'ye erişemem MySql'i java'dan ve Apache sunucusunu kullanarak bağlamak için jdbc kullanıyorum.Kendi lan ip

Class.forName("org.gjt.mm.mysql.Driver"); 
      con = DriverManager.getConnection(
        "jdbc:mysql://localhost:3306/" + Db, dbuser, dbpasswd); 
      stmt = con.createStatement(); 

i bile ben kendi LAN IP Adresi ile java bağlamak için çalıştı dek ya

her şey iyi gitti 127.0.0.1 ile erişebilirsiniz.

Benim LAN IP: 192.168.0.12

yüzden ancak ben bu

http://192.168.0.12/phpmyadmin/

gibi tarayıcılarda erişebileceği bu

Class.forName("org.gjt.mm.mysql.Driver"); 
      con = DriverManager.getConnection(
        "jdbc:mysql://192.168.0.12:3306/" + Db, dbuser, dbpasswd); 
      stmt = con.createStatement(); 

gibi erişebilir istiyorum

+0

mysql'in dış kısımların ona bağlanmasına izin verip vermediğini kontrol ettiniz mi? –

+0

Hangi hata iletisini alıyorsunuz? – bmarkham

+0

PHPMyAdmin, web sunucunuzda çalışan ve ** MySQ sunucusuna ** bağlanan bir PHP uygulamasıdır. MySQL örneğiniz büyük olasılıkla localhost'a bağlanacak şekilde yapılandırılmıştır. –

cevap

0

Eğer mysql driver library Sınıfyolu eklenen olduğundan emin olun.

Makinede 192.168.0.12'de, 3306 portunun blokajının kaldırıldığını kontrol edin.

Buradaki örnek kodda tam URL'yi dahil etmediniz, ancak bunun "+ Db" den sonra böyle bir şey göreceğini varsayalım.

String URL = "jdbc:mysql://192.168.0.12/mydatabase"; 
String username = "username"; 
String password = "password"; 
Connection con = DriverManager.getConnection(URL, username, password); 

portu varsayılan bağlantı noktasını kullanarak gibi, URL'ye dahil edilmesi gerekir, ancak açık olmasını istiyorsanız, ücretsiz hissetmez.

Ayrıca, web sitesine http://192.168.0.12/phpmyadmin/ numaralı telefondan erişebilmenizin, diğer bilgisayarlardan erişebileceğiniz anlamına gelmediğini belirtmek isterim. Phpmyadmin yazılımı localhost'a erişir ve bilgisayarınız veritabanını görüntülemek için localhost'a erişemez. Çözümü merak eden birisi için

+0

MySQL sürücü kütüphane i tüm liman engellenmemiş demektir duvarını devre dışı zaten eklendi (i değilim bu konuda emin). Kod belki senin kadar temiz değil ama işe yarıyor. http://192.168.0.12/phpmyadmin/ adresine başka bir bilgisayardan erişebilirim, hatta verileri manipüle edebilirim. ne düşünüyorsun? –

+0

Haklısınız. Tüm portlar engellenir ve gelen bağlantılara izin verilir. JDBC ile bağlanmaya çalıştığınızda herhangi bir hata alıyor musunuz? – Hidden14

+0

evet, masasına erişemediğimi söylüyor. ancak 127.0.0.1 ve localhost ile erişebilirim. ama kendi IP LAN'ımla yapamıyorum. –

1

, bunu yapmanın bir yolunu buldum.

1), MySQL config my.ini dosyayı bulmak bind_address

2) (benim durumumda ben her konak izin izin vermek için adresiniz ile doldurmak için bakmak, bu yüzden 0.0.0.0 koymak)

3) ev sahibine hibe ekleyin, inanıyorum 2 seçenek var. Eğer phpmyadmin kullanıyorsanız öncelikle bu Sql komutu kullanarak,

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION; 

ikinci, siz, veritabanı menüsünden ayrıcalıkları sekmesine gidin bütün ayrıcalıkları eklemek ve kullanıcının kullanıcı/tipine verebilir.