problem z połączeniem z bazą

0

Witam,

Prubuje się połączyć z bazą mysql za pomocą pkietu mysql connector i dostaje taki oto komunikat:

Exception in thread "main" java.sql.SQLException: Communication link failure: java.io.IOException, underlying cause: Unexpected end of input stream

  • BEGIN NESTED EXCEPTION **

java.io.IOException
MESSAGE: Unexpected end of input stream

STACKTRACE:

java.io.IOException: Unexpected end of input stream
at com.mysql.jdbc.MysqlIO.readPacket(MysqlIO.java:1096)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:626)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:1562)
at com.mysql.jdbc.Connection.<init>(Connection.java:491)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:346)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at database.MySQLAccess.readDataBase(MySQLAccess.java:40)
at database.access_test.main(access_test.java:6)

  • END NESTED EXCEPTION **

at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:699)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:1562)
at com.mysql.jdbc.Connection.<init>(Connection.java:491)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:346)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at database.MySQLAccess.readDataBase(MySQLAccess.java:40)
at database.access_test.main(access_test.java:6)

kod w którym sięwykrzacza to:

String user = "xxxx";
String password = "xxx";
String url = "jdbc//SERVER:3306/employees_java";

        try {
    	    Class.forName("com.mysql.jdbc.Driver");
    	}
    	catch (ClassNotFoundException e) {
    	    System.out.println("can't load driver");
    	    System.exit(1);
    	}

connect = DriverManager.getConnection(url, user, password);

dane są dobre bo łącze się za ich pomocą przez phpmyadmina.

dodam że łącze się z kompa na którym jest Vista 64 bitowa a serwer mysql jest na windows serwer 2008 moze to jest problemem.

Prosze o jakieś sugestie.

Pozdrawiam

0

Te... a sprawdź czy Vista pozwala na połączenie na porcie 3306. Bo łącząc się przez phpMyAdmin z twojego kompa łączysz się po porcie 80 (http) z serwerem bazy danych, a on łączy się z MySQL po localhost i nie ma problemów.
Tu samodzielnie łączysz się z bazą danych i jeżeli masz pozamykane porty to raczej nic nie wskórasz.

0

A jak mogę to sprawdzić ??

0

kurczę, sprawdziłem port 3306 programem IPs i jest zamknięty, po czym wyłączyłem firewall Visty oraz NOD (którego tez mam zaisntalowanego) i niestety port nadal jest 'Closed'. Jak to jest dokładnie ?? Czy aby port nie jest zawsze zamnkniety dopuki nie ma żądania od jakiegoś programu na jego wykorzystanie ??
Jesli tak to chyba Vista nie jest problemem bo po wyłączeniu firewalla i NODA błąd się powtórzył :(. Może komuś coś jeszcze do głowy przyjdzie bo mnie to dobija. Jedynym sensownym wyjściem to chyba postawienie mysqla lokalnie ale to mnie nie urządza :(

Zainstalowałem sobie Msql Admnistratora na VIscie i poszedł więc to nie chodzi o porty raczej, przy okazji sprawdziłem tez ze Mysql Admin na Viscie otrzymał port 62031 chyba przyznany jakoś z autoamatu i z tego portu łączy się z serwerem (port 3306) więc to nie o to chodzi raczej, wydaje m się z kodem w eclipsie jest podobnie. (tzn ze nie trzeba kombinowaćz otwieraniem portu 3306 ponieważ po drugiej stronie serwer na nim pracuje a od strony Visty końcówki łapią sięna innych portach)

Tak czy siak problem mi się nie rozwiązał :/

0

String url = "jdbc//SERVER:3306/employees_java";
Jak to SERVER? To już jest host? Tak się nazywa? Proponuję tu wpisać IP tego serwera.
No i jeszcze tak mi się kojarzy, że MySQL, ze względów bezpieczeństwa, fabrycznie blokuje dostęp do bazy z innych maszyn niż localhost.
To, że port jest zamknięty, to nie znaczy, że jest blokowany przez firewall.
Propozycja jest taka: sprawdź jak ustawić w MySQL blokowanie połączeń z innych maszyn i to odblokuj i spróbuj się połączyć używając mysql z wiersza poleceń.

0

Już pr<ort>u</ort>bowałem przez IP a SERVER to jest host - tak się nazywa w sieci.
Jeśli chodzi o blokowanie z innego komputera to ja oczywiście to sprawdzę ale przecieŻ połączylem się z tego kompa gdzie mam eclipsa poprzez Myaql Administratora bez problemu więc wydaje mi sięze to nie to :/

0

Kurcze problem rozwiązany. Złego Jara sobie wrzuciłem. Dzięki wszystkim za cierpliwość i sory za taką bzdurę, ale nie mam pojęcia o co chodzi z tymi wersjami jarów. Czym sie różni seria mysql-connector-java-3.... a mysql-connector-java-5.... bo piątka mi chodz a trójka nie bardzo :(.
Wie ktoś może ??

0

Np tym ze prawdopodobnie uzywasz servera mysql w wersji 5, i oczekujesz ze connector dla wersji 3 bedzie dzialac.

1 użytkowników online, w tym zalogowanych: 0, gości: 1