2010-12-20 13 views
5

Oto jak próbuję połączyć:Problem łączenia się z MySQL DB przy użyciu JDBC

try { 
    Class.forName("com.mysql.jdbc.Driver").newInstance(); 
    } catch (Exception e) { 
     throw new DbConnectionException(); 
    } 
    try { 
     connection = DriverManager.getConnection(url,username,password); 
    } catch (SQLException e) { 
     e.printStackTrace(); 
     throw new DbConnectionException(); 
    } 

jestem 100% pewien, że adres URL, nazwę użytkownika, hasło ciągi są poprawne. Udało mi się już połączyć za pomocą zewnętrznego narzędzia (przeglądarki zapytań MySQL). Jest to błąd otrzymuję:

com.mysql.jdbc.CommunicationsException: Komunikacja awaria łącza powodu Bazowy wyjątek:

** BEGIN wyjątek zagnieżdżonych **

java.net .SocketException MESSAGE: java.net.ConnectException: Połączenie odmówił

...

+1

Czy serwer MySQL działa? Czy port jest odblokowany z zapory? –

+0

@ Elita: Tak. Nie. – snakile

+0

zapora zablokowała twój port MySQL? Spróbuj odblokować to. –

Odpowiedz

6

Prawdopodobnie problem o numerze . Jeśli Twój kod wskazuje MySQL localhost, spróbuj zmienić adres localhost na 127.0.0.1 w swoim adresie URL.

Np .:

jdbc:mysql://localhost:3306/MY_DB 

do

jdbc:mysql://127.0.0.1:3306/MY_DB 

i sprawdzić, czy to działa.

+0

Rzeczywiście problem z adresem URL. Okazuje się, że miałem inny fragment kodu, który próbował połączyć się z innym DB i spowodował problem. Przepraszam, że jestem w 100% pewien, że coś jest nie tak. – snakile

+0

Domyślam się, że to był problem z adresem URL .... – hvgotcodes

1

czy uruchomiłeś przeglądarkę mysql z tego samego komputera, na którym działa kod? Dostaję się do tego, że uprawnienia w mysql mogą być zależne od hosta, a w zależności od sposobu ich skonfigurowania może nie być możliwe połączenie z komputera, na którym działa kod.

Ponadto, warto dokładnie sprawdzić czy adres URL, nazwa, pword ponownie, być może ze sprawozdania z bali lub debuggera aby upewnić się, że nie ma żadnych literówek, końcowe spacje, itp ...

+0

To samo urządzenie. Parametry są właściwe. – snakile

+0

@snakile czy spojrzałeś na odpowiedź Jzda? to jest dobry pomysł. – hvgotcodes

1

dwukrotnie sprawdzić format adresu URL. Powinien zaczynać się od "jdbc: mysql:". Upewnij się, że używasz aktualnej wersji również dla sterownika.

+0

Rzeczywiście problem z adresem URL.Okazuje się, że miałem inny fragment kodu, który próbował połączyć się z innym DB i spowodował problem. Przepraszam, że jestem w 100% pewien, że coś jest nie tak. – snakile

0

Sprawdź, czy możesz połączyć się z bazą danych za pomocą narzędzia administratora mysql, które wyłączy, czy twój mysql działa i czy port jest otwarty.

0

W moim przypadku problem polegał na tym, że korzystałem z połączenia z emulatora do lokalnego hosta.

Jeśli używasz emulatora do localhost nie używać localhost wartość w ciąg połączenia, ale zamiast używać 10.0.2.2:

jdbc:mysql://10.0.2.2:3306/MY_DB 

nadzieję, że to pomaga.

Powiązane problemy