[ S_3_ka @ 19.02.2005. 19:50 ] @
Postavio sam stranicu sa appletom koji je povezan sa mySql bazom na net, medjutim pri pokusaju ucitavanja appleta dobijam gresku:

Greska: java.sql.SQLException: null, message from server: "Host 'smin11.blueisp.co.yu' is not allowed to connect to this MySQL server"

Na mom racunaru sve radi kako treba.

Relativno sam nov sa Javom i mySql-om...
[ filmil @ 19.02.2005. 22:51 ] @
Greška ti sve kaže. Baza podataka ne dozvoljava korisniku sa tog računara da je koristi. Mislim da je odgovor u podešavanju prava pristupa bazi. Uzmi u obzir da ima provajdera koji ne dozvoljavaju udaljeni pristup bazi.

f
[ hyle @ 20.02.2005. 03:38 ] @
Pogledaj u dokumentaciji za MySql server uputstvo za naredbu GRANT.
Tu ćeš naći ono što ti treba.

Pozdrav
[ hanami @ 20.02.2005. 03:39 ] @
Kao resenje, predlazem da isprobas servlete kao medjukorak u komunikaciji izmedju appleta i baze. Dakle, sve zahteve iz appleta prema bazi salji servletu da ih odradi.

Evo nekoliko linkova:
jedan jednostavan i razumljiv primer applet - servlet komunikacije: http://www.frank-buss.de/echoservlet/

i tekst u kome je to malo detaljnije objasnjeno:
http://www.j-nine.com/pubs/applet2servlet/Applet2Servlet.html
[ weB_KiLeR @ 20.02.2005. 08:41 ] @
Ne razumem sta vama nije jasno!?
Problem nije do jave, vec do baze podataka, tj. servera.
Da li je applet na serveru gde je mySQL, ako nije onda je to problem.
A ako ne moze preko appleta, zasto bi moglo preko servleta, ne kapiram to kakva je tu razlika?
[ filmil @ 20.02.2005. 13:22 ] @

Citat:

A ako ne moze preko appleta, zasto bi moglo preko servleta, ne kapiram

to kakva je tu razlika?



Aplet se izvršava na klijentovom računaru, servlet se izvršava na

serveru. Mnogi provajderi dozvoljavaju pristup MySQL-u samo sa

/localhost/-a. Znači ako probaš udaljeni pristup (kroz aplet) to neće

raditi.


Rešenje je da na samom serveru (odn. bilo kom računaru s koga provajder

dozvoljava pristup) imaš nešto što će da prihvati podatke i odradi

transakciju u lokalu. Servletom se to može uraditi, ali to zahteva da

postoji Java hosting kod provajdera, što vrlo često nije slučaj;

provajderi radije hostuju php i perl. Dakle ostaje da se napiše npr.

neki php �€�posrednik�€� koji će od apleta da preuzme podatke pa u lokalu

odradi stvar. Možda XML-RPC može da pomogne u tome, pošto koliko znam

postoji implementacija i za Javu i za PHP. To naravno nije jedini način,

ali je jedan od mogućih.


f
[ weB_KiLeR @ 20.02.2005. 13:28 ] @
Da, garant je server zabranio pristup van localhost-a, mada opet kakva je to sigurnost kad u appletu stoje parametri za pristup mySQL serveru.
[ filmil @ 20.02.2005. 14:49 ] @
Citat:
kakva je to sigurnost kad u appletu stoje parametri za pristup mySQL serveru.
U dve stvari. 

Prvo, MySQL ti neće dozvoliti da se povežeš čak ni sa ispravnim korisničkim imenom i lozinkom ako dolaziš sa računara kom je zabranjeno da se poveže. U mnogim slučajevima (provajderi i sl.) to znači da su nepoželjni svi osim localhosta.

Drugo, aplet može da pristupa samo sajtu sa kog je preuzet pa je to neka vrsta garancije da je preuzet upravo sa datog sajta; doduše ova druga bezbednosna mera osigurava klijenta koji koristi aplet, a ne server..

f
[ weB_KiLeR @ 20.02.2005. 19:02 ] @
Yeah right, dekompajliras ga i izvadis podatke, dzabe ti garancije...
A sto se tice onog prvog to je ok razumem to, kod verata na primer to nije slucaj, u svakom slucaju applet nije siguran nikako.
[ S_3_ka @ 02.03.2005. 15:35 ] @
Hvala vam! Skontao sam u cemu je problem i mislim da ga mogu resiti. Ali sad dobijam jednu drugu gresku:

Greska3: com.mysql.jdbc.CommunicationsException: 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:151)
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:280)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:1699)
at com.mysql.jdbc.Connection.<init>(Connection.java:405)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:268)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at Kupovina.Ispis(Kupovina.java:426)
at Kupovina.init(Kupovina.java:395)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)


** END NESTED EXCEPTION **