|
| 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/
| |
|
|