/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
JDBC til PHP tunnel til MySQL
Fra : Henrik Nielsen


Dato : 09-04-04 22:31

Jeg ved ikke om det er den rigtige gruppe, men der er i forvejen en del
databaserelaterede spørgsmål så jeg prøver :)

Jeg har min hjemmeside liggende hos et webhotel der ikke tillader
tilgang til databasen fra andet en localhost. Det gør det lidt svært at
forbinde til databasen fra f.eks. et program der gerne ville opdatere
data på siden.

Det må dog være muligt at lave en JDBC-driver der kalder et PHP-script
over HTTP, hvor scriptet så fungere som bindeled mellem driver og
database (Det giver nok en utrolig dårlig performance, men et langsomt
hul er bedre end intet hul overhovedet).

Findes der en sådan løsning et eller andet sted, eller skal jeg selv
igang med at implementere min egen driver? Jeg kunne forestille mig det
var en rimelig generel problemstilling som andre er stødt på før mig,
derfor ville jeg lige spørge inden jeg går i gang :)

Håbefulde hilsner,
Henrik

 
 
Thorbjoern Ravn Ande~ (10-04-2004)
Kommentar
Fra : Thorbjoern Ravn Ande~


Dato : 10-04-04 08:15

Henrik Nielsen <ROERUGIKXGDS@spammotel.com> writes:

> Jeg har min hjemmeside liggende hos et webhotel der ikke tillader
> tilgang til databasen fra andet en localhost. Det gør det lidt svært
> at forbinde til databasen fra f.eks. et program der gerne ville
> opdatere data på siden.

Det lyder som om du skal 1) hitte ud af hvilken port MySQL lytter på,
og 2) undersøge hvordan du kan bruge ssh's port-forwarding til at
opfylde ovenstående.

Putty (søg på goggle) er en ssh-klient med port-forwarding til
Windows.

--
Thorbjørn Ravn Andersen
http://unixsnedkeren.dk/ravn

Henrik Nielsen (10-04-2004)
Kommentar
Fra : Henrik Nielsen


Dato : 10-04-04 10:22

Thorbjoern Ravn Andersen wrote:
> Det lyder som om du skal 1) hitte ud af hvilken port MySQL lytter på,
> og 2) undersøge hvordan du kan bruge ssh's port-forwarding til at
> opfylde ovenstående.

Problemet er at databasen ligger på et webhotel (b-one), og ikke kan nås
udefra. Derudover har jeg kun FTP adgang til serveren, så jeg kan ikke
bruge SSH eller port-forwarding overhovedet :(

Den eneste protokol jeg derfor kan bruge er HTTP, hvor jeg så
forestiller mig at JDBC-driveren sender brugernavn, password og selve
sql-strengen til et php-script, der så udfører forespørgslen, og sender
resultatet tilbage over HTTP.

Lidt en omvej, jeg ved det, men det er den eneste måde jeg har kunnet
finde på.

Thorbjoern Ravn Ande~ (10-04-2004)
Kommentar
Fra : Thorbjoern Ravn Ande~


Dato : 10-04-04 14:45

Henrik Nielsen <ROERUGIKXGDS@spammotel.com> writes:

> Den eneste protokol jeg derfor kan bruge er HTTP, hvor jeg så
> forestiller mig at JDBC-driveren sender brugernavn, password og selve
> sql-strengen til et php-script, der så udfører forespørgslen, og
> sender resultatet tilbage over HTTP.
>
> Lidt en omvej, jeg ved det, men det er den eneste måde jeg har kunnet
> finde på.

Hvis serveren understøtter https, så kan du undersøge om https-proxy
funktionen kan bruges til at gøre det du har brug for. Der er en del
beskrivelser af teknikken som du formentlig kan finde ved at søge på
google efter "https tunnel".

Det ser ud til at
http://www.javaworld.com/javaworld/javatips/jw-javatip111.html måske
kan lirkes til at give noget du kan bruge. Det nemmeste er nok at
lytte på en port på egen maskine.


--
Thorbjørn Ravn Andersen
http://unixsnedkeren.dk/ravn

Jens Hilligsøe (14-04-2004)
Kommentar
Fra : Jens Hilligsøe


Dato : 14-04-04 23:40

On Sat, 10 Apr 2004 11:22:17 +0200, Henrik Nielsen wrote:

> Den eneste protokol jeg derfor kan bruge er HTTP, hvor jeg så
> forestiller mig at JDBC-driveren sender brugernavn, password og selve
> sql-strengen til et php-script, der så udfører forespørgslen, og sender
> resultatet tilbage over HTTP.

Løsningen er nok at erstatte JDBC med SOAP eller noget du selv finder på.
Det lyder i hvert fald ikke som den sikre løsning, at send brugernavn og
password til MySQL serveren over HTTP. Heller ikke SQL statementen for den
sags skyld.

Du er så nød til at lægge "forretnings" logikken i PHP scripts, og lade
hvad end du er ved at lave være en dum klient i den henseende.

> Lidt en omvej, jeg ved det, men det er den eneste måde jeg har kunnet
> finde på.

Tror nu nok, at der er lavet fine patterns for denne slags ting.

/Hilli



Henrik Nielsen (15-04-2004)
Kommentar
Fra : Henrik Nielsen


Dato : 15-04-04 16:13

Jens Hilligsøe wrote:
> On Sat, 10 Apr 2004 11:22:17 +0200, Henrik Nielsen wrote:
>
> Løsningen er nok at erstatte JDBC med SOAP eller noget du selv finder på.
> Det lyder i hvert fald ikke som den sikre løsning, at send brugernavn og
> password til MySQL serveren over HTTP. Heller ikke SQL statementen for den
> sags skyld.
>
> Du er så nød til at lægge "forretnings" logikken i PHP scripts, og lade
> hvad end du er ved at lave være en dum klient i den henseende.

Det er vist også det jeg selv er kommet frem til.

Det er altid rart at nogle andre foreslår det samme som man selv næsten
har besluttet. Så er det nok ikke helt ved siden af :)

Tak for svaret,
henrik


Jonathan Stein (10-04-2004)
Kommentar
Fra : Jonathan Stein


Dato : 10-04-04 16:17

Henrik Nielsen wrote:

> Det må dog være muligt at lave en JDBC-driver der kalder et PHP-script
> over HTTP, hvor scriptet så fungere som bindeled mellem driver og
> database (Det giver nok en utrolig dårlig performance, men et langsomt
> hul er bedre end intet hul overhovedet).

Ja, det er givet muligt, men du går ikke bare over åen efter vand -
du svømmer over en større flod!

Hvis du ikke kan nøjes med phpMyAdmin, så find et hotel, hvor du kan
tilgå basen udefra eller lave en form for VPN, som det er nævnt i et
andet indlæg.

M.v.h.

Jonathan

--
Er din e-mail vigtig? Er du træt af virus og spam i mailen?
Virus-scanning og spam-filtrering på alle mail-konti. På redundant
mail-setup med daglig backup.
http://www.jsp-hotel.dk/

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408917
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste