Java+mySQL

0

Witam proboje polaczyc sie za pomoca javy do mysql'a niestety nijak mi to niewychodzi
szukalem w sieci i w zasadzie nikt nie uzyskal satysfakcjonujacej odpowiedzi.
Wydaje mi sie ze zrobilem wszystko poprawnie:
1) Sciagnalem najnowsza wersje connector'a(mysql-connector-java-5.0.5) wrzucilem go
do /usr/java/jdk1.6.0/jre/lib/ext/. W eclipse po prawej stronie w package explorer,
w swoim projekcie mysql-connector-java... jest widoczny wiec rozumiem ze jest takze widoczny
podczas kompilacji przez javac;
2) Sciagnalem poprawny kod testujacy polacznie do mysql'a;
3) Sprawdzilem czy mysql dziala;
4) Stworzylem testowa baze danych, uzytkownika i tabel'e;

Skompilowalem uruchomilem i kiszka  [???] 

Nastepnie dodatkowo zmienilem prawda dostepu na 777 connectorowi i otworzylem wszystkie
porty. Niestety i to niepomoglo. Moze ktos wpadnie na to co jest nie tak?

Zalaczam testowy program i to co widze po uruchomieniu na konsoli:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class JavaDBC
{

    public static void main(String[] args)
    {

    Connection con=null;

        try
        {
            Class.forName("com.mysql.jdbc.Driver").newInstance();
            con = DriverManager.getConnection("jdbc:mysql://localhost/JunkDB","auser", "drowssap");

            Statement s=con.createStatement();
            s.executeQuery ("SELECT * FROM test");
            ResultSet rs=s.getResultSet();
            int count=0;
            while (rs.next())
            {
                String m = rs.getString(1);
                ++count;
                System.out.println(count+" text "+m);
            }
            rs.close();
            s.close();
        }
        catch(Exception e)
        {
            System.err.println("Exception: "+e.getMessage());
        }
        finally
        {
            try
            {
                if(con!=null)
                con.close();
            }
            catch(SQLException e) {}
        }
    }

} 

Exception: Communications link failure due to underlying exception:

  • BEGIN NESTED EXCEPTION **

java.net.ConnectException
MESSAGE: Połączenie odrzucone

STACKTRACE:

java.net.ConnectException: Połączenie odrzucone
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:519)
at java.net.Socket.connect(Socket.java:469)
at java.net.Socket.<init>(Socket.java:366)
at java.net.Socket.<init>(Socket.java:208)
at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:173)
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:267)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:2739)
at com.mysql.jdbc.Connection.<init>(Connection.java:1553)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at JavaDBC.main(JavaDBC.java:18)

  • END NESTED EXCEPTION **

Last packet sent to the server was 58 ms ago.

0

Wyglada na to ze albo podajesz np zly port, albo w ogole nie masz mysql uruchomionego na kompie. Ale nie mam pewnosci.

0

Wg tej listy http://www.iana.org/assignments/port-numbers mysql dziala na porcie 3306.
Wiec ustawilem w DriverManagerze port:

...
  con=DriverManager.getConnection("jdbc:mysql://localhost:3306/JunkDB","auser", "drowssap");
...

Niestety to niepomoglo.

Mysql'a mam uruchomionego na 100%. Pracuje na LAMP'ie i wszystkie aplikacje napisane w PHP'ie dzialaja.
Dam ci jeszcze wyjscie z ps aux | grep mysql:

mysql 2878 0.0 0.0 6160 988 ? Ss 16:05 0:00 /usr/sbin/mysqlmanager --default-mysqld-path=/usr/sbin/mysqld --user=mysql --run-as-service --pid-file=/var/run/mysqld/mysqlmanager.pid
mysql 2880 0.0 0.1 14516 1636 ? Sl 16:05 0:00 /usr/sbin/mysqlmanager --default-mysqld-path=/usr/sbin/mysqld --user=mysql --run-as-service --pid-file=/var/run/mysqld/mysqlmanager.pid
mysql 2906 0.0 1.5 111332 16504 ? Sl 16:05 0:00 /usr/sbin/mysqld --no-defaults --user=mysql --datadir=/var/lib/mysql --port=3306 --socket=/var/lib/mysql/mysql.sock --pid-file=/var/run/mysqld/mysqld.pid --skip-locking --key_buffer=16M --max_allowed_packet=1M --table_cache=64 --sort_buffer_size=512K --net_buffer_length=8K --read_buffer_size=256K --read_rnd_buffer_size=512K --myisam_sort_buffer_size=8M --old_passwords --skip-networking --log-bin=mysql-bin --server-id=1

Niewiem co jest po weekendzie bede jeszcze walczyl jak mi sie nieuda to aplikacje napisze w cepie :-(

0

hehe, a masz podniesionego locala?

pozdrawiam

0

Chodzi Ci oto? :
PING localhost (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.097 ms
64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.074 ms

0

Chodzi Ci oto? :
PING localhost (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.097 ms
64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.074 ms

albo oto? :
PING google.com (72.14.207.99) 56(84) bytes of data.
64 bytes from eh-in-f99.google.com (72.14.207.99): icmp_seq=1 ttl=238 time=255 ms
64 bytes from eh-in-f99.google.com (72.14.207.99): icmp_seq=2 ttl=238 time=326 ms

0

raczej o to
ifconfig |grep lo
ale widze ze masz... swoja droga dziwne, bo objawy byly podobne..

pozdrawiam

0

Sprawdź nmapem, czy ten port 3306 jest na pewno otwarty.
MySQL można uruchomić bez TCP/IP przez opcję (chyba) --skip-networking.

0

Wygloda nato ze jest rzeczywiscie zamkniety 8-O :

[[email protected] home]# nmap -v -p T:3306 127.0.0.1

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2007-04-02 16:41 CEST
Initiating SYN Stealth Scan against localhost (127.0.0.1) [1 port] at 16:41
The SYN Stealth Scan took 0.08s to scan 1 total ports.
Host localhost (127.0.0.1) appears to be up ... good.
Interesting ports on localhost (127.0.0.1):
PORT STATE SERVICE
3306/tcp closed mysql

Nmap finished: 1 IP address (1 host up) scanned in 0.242 seconds
Raw packets sent: 1 (44B) | Rcvd: 2 (84B)

Dzieki za nakierowanie. ;-)

0

wiem, iż wspólnego z tematem to ma niewiele, ale czy nie łatwiej dostawać się do bazy korzystając z gotowych technologii jak EJB czy też Hibernate...?

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