Avatar billede zombietown Nybegynder
30. marts 2006 - 09:33 Der er 20 kommentarer og
1 løsning

Fejl i kald til MySql

Jeg har lavet en lille crawler, som gerne skulle gemme nogle links i en database, men jeg kan ikke få kaldet til MySql til at virke.

JEg har har haft alvet et spørgsmål om emnet før, men tråden døde pludseligt.

Her er programmet og fejlen. Håber der er en der kan hjælpe.

        try
        {
            Class.forName("com.mysql.jdbc.Driver");
        } catch (ClassNotFoundException e)
        {
            System.out.println("com.mysql.jdbc.Driver ikke fundet.");
        }
        try
        {
            Connection con = DriverManager.getConnection("jdbc:mysql://localhost/crawler_1", "root", "root");
        } catch (SQLException e)
        {
            System.out.println("ErrorCode " + e.getErrorCode());
            System.out.println("SQLState " + e.getSQLState());
            System.out.println("message " + e.getMessage());
        }


Fejlen som den er nu.

ErrorCode 0
SQLState 08S01
message Communications link failure due to underlying exception:

** BEGIN NESTED EXCEPTION **

java.net.SocketException
MESSAGE: java.net.ConnectException: Connection refused: connect

STACKTRACE:

java.net.SocketException: java.net.ConnectException: Connection refused: connect
    at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:156)
    at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:276)
    at com.mysql.jdbc.Connection.createNewIO(Connection.java:2592)
    at com.mysql.jdbc.Connection.<init>(Connection.java:1509)
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)
    at java.sql.DriverManager.getConnection(DriverManager.java:525)
    at java.sql.DriverManager.getConnection(DriverManager.java:171)
    at webcrawler.CrawlerDB.main(CrawlerDB.java:26)


** END NESTED EXCEPTION **
Avatar billede zombietown Nybegynder
30. marts 2006 - 18:03 #1
Jeg har opdaget at hvis jeg fjerner Connector/J fra min computer, så ændre det ikke noget på fejlen, så måske det er der problemet ligger ??

Skal man bruge Connector/J eller kan man godt køre uden den ??
Avatar billede zombietown Nybegynder
31. marts 2006 - 11:04 #2
Det var så ikke det der var problemet, da jeg fik fjernet Connector/J alle steder fra, så kom der en anden fejl.

Er der ikke nogen der har et forslag. Det kan da ikke passe jeg skal til at fjerne den version og de tabeller jeg har oprettet for at installere en ældre version.

- Rasmus
Avatar billede spaceus Nybegynder
04. april 2006 - 00:10 #3
hvad version af java kører du?
Avatar billede zombietown Nybegynder
05. april 2006 - 09:14 #4
Jeg bruger den nyeste JBuilder.

Jeg har hentet den nyeste java fra sun. Kan ikke lige huske versions nr.

- Rasmus
Avatar billede smirnoff Nybegynder
05. april 2006 - 21:23 #5
Du kommer ikke langt så længe du for en "Connection refused: connect" - der er ikke hul igennem til databasen... er du sikker på din connection url er rigtig .. tillader din mysqlserver forbindelser over TCP/IP, har du sat dine rettigheder rigtigt i mysql osv ...

... der ville jeg begynde at lede ;)
Avatar billede erikjacobsen Ekspert
05. april 2006 - 21:31 #6
I dit tidligere spørgsmål blev du henvist til http://dev.mysql.com/doc/refman/5.0/en/old-client.html  - har du gjort noget ved det?
Avatar billede zombietown Nybegynder
06. april 2006 - 08:15 #7
Jeg har installeret MySql på min egen computer, så er det vel ikke nødvendigt at bruge tcp/ip til at få forbindelse til databasen.
Hvis du med connection url mener "jdbc:mysql://localhost/crawler_1" så er den rigtig, for ændre jeg noget i den, så får jeg en anden fejl.

Jeg har prøvet at sætte mine rettigheder til at jeg må alt, men er ikke sikker på at det virker, for den skriver noget i stil med "0 rækker ændret" når jeg prøver.

Jeg har rettet det med old-client, så det er ikke et problem, og jeg tror ikke det har været et problem.

- Rasmus
Avatar billede spaceus Nybegynder
06. april 2006 - 08:16 #8
så ret dog det brugernavn og password til databasen

ellers kommer du jo ikke på ;)
Avatar billede smirnoff Nybegynder
06. april 2006 - 09:01 #9
java.net.SocketException: java.net.ConnectException: Connection refused: connect

... Den fejl opstår ikke hvis ikke du forsøger dig med at skabe en tcp/ip(el. udp) forbindelse... i dette tilfælde DriverManager.getConnection ... mysql driveren defaulter til tcp/ip ved at man angiver

jdbc:mysql://hostname:port/database

.. ergo du får ikke forbindelse til serveren med mindre den accepterer tcp forbindelser - eller at mysql smider dig af pga andre grunde
Avatar billede zombietown Nybegynder
06. april 2006 - 12:28 #10
Hvad mener du med at jeg skal rette bruger navn og password til. Brugernavn er "root" og password er "root", hvad er der galt i det ???

Ok..... Hvordan finder jeg udad om jeg kan får forbindelse til serveren med tcp/ip ?? Er der noget jeg kan prøve i java for at teste forbindelsen ??

- Rasmus
Avatar billede smirnoff Nybegynder
06. april 2006 - 16:09 #11
hvilken version af Mysql er det ?
Hvilket OS kører du ?


Prøv i en konsol at forbinde til mysql ...

mysql -h localhost -u root -p


.. kan du det ?

.. hvis ja - så prøv at stoppe din mysqlserver og kør kommandoen igen ... og gi også fejlbeskeden



Hvis du kører Linux, vil mysql her forbinde via såkaldte 'unix sockets' - hvilket ikke er det samme som netværkssockets ... og Java understøtter KUN netværkssockets
Avatar billede smirnoff Nybegynder
06. april 2006 - 16:10 #12
også = os så
Avatar billede zombietown Nybegynder
07. april 2006 - 07:51 #13
Kan først prøve når jeg kommer hjem, men kan da lige svare på de ting jeg ved.

Mysql er version 5.0.
Os er windows xp.
Jeg kan forbidne til mysql uden problemer.

- Rasmus
Avatar billede zombietown Nybegynder
08. april 2006 - 13:33 #14
Efter jeg har stoppet serveren, så får jeg den samme fejl, hvilket undre mig.

Jeg har kontroleret at serveren ikke er kørende ved at prøve at starte Command Line Client, som så ikke kan forbinde til serveren.

- Rasmus
Avatar billede erikjacobsen Ekspert
08. april 2006 - 13:44 #15
Udenom Java kører du lige en

  show variables;

og fortæller hvad der står i "skip_networking"
Avatar billede zombietown Nybegynder
08. april 2006 - 14:01 #16
Skip_networking er sat til ON.
Avatar billede erikjacobsen Ekspert
08. april 2006 - 14:05 #17
Så kan du ikke få forbindelse med TCP/IP som Java bruger. Den skal sættes til OFF, plus en genstart af mysql-serveren.
Avatar billede zombietown Nybegynder
08. april 2006 - 14:24 #18
Sådan der. Tusind tak for hjælpe, nu er der hul til serveren fra java.

Hvis du lige ligger et svar, så fpr du nogle point.

- Rasmus
Avatar billede erikjacobsen Ekspert
08. april 2006 - 14:26 #19
Jeg samler slet ikke på point, tak.
Avatar billede erikjacobsen Ekspert
08. april 2006 - 14:28 #20
Og lige til almindelig orientering: Det ser ud som om det er blevet mere almindeligt at netværkstilgang er lukket efter installering af mysql - jeg har set det flere steder nu. Det er selvfølgelig en go' sikkerhed, og skal man bruge det, så skal det altså slås til.
Avatar billede zombietown Nybegynder
08. april 2006 - 14:32 #21
ok, så beholder jeg dem til jeg skal bruge hjælp til noget andet.

Tak for hjælpen.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester