Połączenie do mysql z innego komputera w sieci

0

Witam,

Mam aplikację, która używa sterownika

com.mysql.jdbc.Driver

. Na starcie aplikacja próbuje połączyć się z bazą danych mysql w sieci lokalnej. Pobiera ona sobie z pliku ścieżkę do bazy, która ma u mnie postać jdbc//192.168.0.3/notowania?user=root&password=rootx

. Ip jest adresem komputera z mysqlem. Następnie wykonuje na bazie zapytanie <code class="cpp">SELECT * FROM notowania.notowania

Kiedy włączam aplikację na komputerze z zainstalowaną bazą mysql, to nie ma żadnego problemu. Natomiast kiedy włączam ją na innym komputerze w sieci to program rzuca wyjątek z obiektem

java.lang.NullPointerException

Chciałbym zaznaczyć, że ustawiłem w mysql hosta 192.168.0.3 z odpowiednimi uprawnieniami, oraz wyłączyłem firewall na komputerze z mysqlem

Co może być powodem takiego działania?

Pozdrawiam i proszę o pomoc.

0

NullPointer, ale gdzie? Bo jak będzie problem z połączeniem to java da znać.

0
public boolean CzyUzyskanoPolaczenie(String select)
{
    boolean wart=false;
    try
    {
        rs = st.executeQuery(select);
        wart=true;
    }
    catch(SQLException e)
    {
        JOptionPane.showMessageDialog(null,"Zapytanie: "+select+"\nSQLState: "+e.getSQLState()+"\nSQLError: "+e.getErrorCode());
        wart = false; 
    }
    catch(Exception e)
    {
        JOptionPane.showMessageDialog(null,"Zapytanie: "+select+"\nWyjątek(obiekt): "+e+"\n" +
                 "Wyjątek(hashCode): "+e.hashCode()+"\nWyjątek(message): "+e.getMessage()+"\nWyjątek(cause): "+
                 e.getCause()+"\nWyjątek(desc): "+e.toString()+"\nWyjątek(class): "+e.getClass()+"\nWyjątek(stacktrace): "+e.fillInStackTrace());
         wart=false;
    }
    return wart;
}
0

Ale gdzie masz NullPointerException ? W bloku Exception czy SQLException ?

0

A sorry :P

W bloku Exception...

0

Wyjątek pojawia się w tym wierszu

   rs = st.executeQuery(select);

? Masz pewność, że st!=null ?
Ujawnij jeszcze, co ten fragment

        JOptionPane.showMessageDialog(null,"Zapytanie: "+select+"\nWyjątek(obiekt): "+e+"\n" +
                 +"\nWyjątek(cause): "+
                 e.getCause()+

wypisuje.
IMHO, trochę przedobrzyłeś e oraz e.toString() wypisuje to samo, e.getMessage() część tego co e.toString()

0

Ja wiem, że to wyrzuca te same rzeczy, tzn. wcześniej nie wiedziałem, ale teraz już zostało :-P

Oto co jest zwracane:

user imageuser image</image></url>

0

sprawdz ustawienia MySQL mianowicie czy zezwala na połączenia z zewnątrz i na jakiego użytkownika i jakie hasło może się logować, być może na komputerze lokalnym ten problem nie występuje, bo logujesz sie zdalnie jako admin (użytkownik, który instalował baze) itd

Czy jesteś pewien, że to wina zapytania ?

0

Zapytanie zwróciłem sobie, żeby widzieć czy czasem nie ma błędu...

Co do ustawień MySql to w phpmyadmin stworzyłem uprawnienia dla hosta 192.168.0.3, z loginem i hasłem takim jak podane w ścieżce do bazy... Czyli dla użytkownika root, hasło rootx. Może to nie powinien być root?

0

Nie odpowiedziałeś na pytanie. Masz pewność, że st!=null ?

0

Przepraszam, mój błąd. Sprawdziłem jeszcze raz i okazuje się, że st jest null. Czyli błąd występuję na etapie połączenia...

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