toegang tot remote database

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

De boer

de boer

09/08/2010 23:02:44
Quote Anchor link
Hoi Allen,

Ik heb het volgende probleem(-pje):

Als ik met een browser het bestand spelers.php (zie onder) benader, kan ik zonder problemen de database en tabellen benaderen.

Als ik spelers.php op de website bij mijn webhost zet, waarbij ik de host vervang door het ip adres van mijn server (thuis) werkt het niet (cannot display webpage)

De priveleges op de database zijn: user(xxx) host(%)

De poorten 80 en 3306 staan open.

Het is vast een bekend probleem. Oplossingen/suggesties zijn zeer welkom !

(spelers.php)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>Test namen</title>
</head>
<body>
<form action="catch name1.php" method="post">
Maak keuzen: <br>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
error_reporting (E_ALL | E_STRICT);
// Database connection
$db_database = 'Scores';
$db_host = 'Y';
$db_user = 'Z';
$db_pass = 'X';
mysql_connect($db_host,$db_user,$db_pass) or die("Could not connect to MySQL (Main connection)");
?>

<input value="verzenden" type="submit"></form>
</body></html>
Gewijzigd op 10/08/2010 11:25:16 door De boer
 
PHP hulp

PHP hulp

25/04/2024 12:44:42
 

09/08/2010 23:09:45
Quote Anchor link
Ik zou je password hier eerst effe weghalen.
Je hoster kan bepalen dat externe mysql verbindingen niet mogen.
Verder moet je wat aan je datamodel doen. Is niet echt correct.
Gewijzigd op 09/08/2010 23:13:28 door
 
De boer

de boer

09/08/2010 23:13:52
Quote Anchor link
Ja id stom van mij
 
Aad B

Aad B

09/08/2010 23:34:46
Quote Anchor link
Het kan dat de hoster port 3306 net toelaat naar buiten alhoewel hosters zich meer bezig houden met poorten naar binnen (firewall). Het probleem ligt eerder bij De Boer zelf: Heeft hij in zijn modem/router port 3306 geforward naar binnen en accepteert zijn eigen firewall (windows??) een inkomende port 3306 en heeft De Boer zijn eigen MYSQL database geautoriseerd voor inkomend verkeer vanaf de hoster ? Er komt nogal wat bij kijken maar hte is niet onmogelijk. Je kan zelfs je hoster altijd passeren over poort 80 (http poort) of beter nog 443(https poort) en je maakt dan bijvoorbeeld vanuit je php script een MySQL connectie over 443 en die forward je imkomend op je router naar 3306 naar je interne MySQL.
Edit:

verder kan je hier ook beter niet je prive ipnummer publiceren. Iedere jojo kan nu op poort 80 en 3306 klooien...
en user root, ook heeeel fout.
Gewijzigd op 09/08/2010 23:41:40 door Aad B
 

09/08/2010 23:39:23
Quote Anchor link
Het is mogelijk. Heb verbinding gehad via navicat met z'n database. Daarom weet ik van verkeerd datamodel.

De boer op 09/08/2010 23:13:52:
Ja id stom van mij

Dan moet je het wel weghalen.
Gewijzigd op 09/08/2010 23:41:01 door
 
De boer

de boer

09/08/2010 23:42:37
Quote Anchor link
Hoi Aad,
De database op mijn server thuis benaderbaar via port 3306 die wordt geforward naar mijn LAMP server, dat is getest dus daar zit het niet in.
(later ga ik een ssl verbinding configureren.)
Ik kan dus vanuit iedere locatie de database benaderen, dat doe ik via sockets vanuit een delphi applicatie die draait op een touchscreen computer
 
Aad B

Aad B

09/08/2010 23:47:19
Quote Anchor link
Okee, dan heb je intern de zaken goed geregeld. Wellicht houdt je provider dan het verkeer tegen. Advies is dan om over port 443 te werken wat overigens niet betekent dat je ssl werkt, je misbruikt alleen de poort. Ik heb alleen nog niet uitgezocht of je een request/connectie naar MySQL een port mee kan geven als parameter. Met Oracle kan ik dat wel. Beetje laat nu maar dat is wellicht wat je uit kan zoeken voor MySQL. Suc6.
Gewijzigd op 09/08/2010 23:48:27 door Aad B
 
P Lekensteyn

P Lekensteyn

10/08/2010 10:53:37
Quote Anchor link
Ik denk niet dat de hoster poort 3306 blokkeert.
Als je met MySQL verbinding maakt controleert ie:
- Mag je van jouw locatie inloggen (IP adres)
- Mag de gebruiker inloggen met opgegeven wachtwoord?
- Heeft de gebruiker toegang tot een database, met de rechten voor de query?

Waarschijnlijk heb je iets als [email protected] of root@localhost.
Dat betekent dat je niet van buitenaf kan verbinden.
Stel het IP adres van jouw host is 12.34.56.78. Dan moet je [email protected] rechten geven.
Je zou dat in PMA kunnen instellen.
Ik zou nu wel even jouw root wachtwoord wijzigen, als iemand nu toegang krijgt tot de DB / PMA kunnen ze doen wat ze willen.
 
Johan Dam

Johan Dam

10/08/2010 11:12:53
Quote Anchor link
.. je kan je bericht wijzigen om wachtwoord te veranderen in sterretjes oid
 
- Raoul -

- Raoul -

10/08/2010 11:21:19
Quote Anchor link
Je kan je bericht gemakkelijk aanpassen door op dit knopje te klikken Afbeelding naast je bericht.
Gewijzigd op 10/08/2010 11:24:07 door - Raoul -
 
Nick van der heijden

nick van der heijden

10/08/2010 11:25:41
Quote Anchor link
je moet je ip niet neer zetten maar localhost:3306 dan zal het denk ik wel werken ik heb het zelf ook gehad dusja
 
De boer

de boer

10/08/2010 11:31:33
Quote Anchor link
Zeer bedankt ! Ik zocht al naar de mogelijkheid het bericht aan te passen. Olliedom van mij :)
De permissies voor de database zijn voor user Y zijn:
host % dus toegang vanaf iedere host
permissies voor: insert, delete, update (alhoewel ik in mijn script alleen nog probeer verbinding te krijgen)

Het vreemde blijft dus dat ik vanaf iedere locatie met gebruik van mijn applicatie (delphi met sockets) gewoon de database van buiten af kan benaderen, zodat ik veronderstel dat de database van buitenaf wel benaderbaar zou moeten zijn.

Lastig probleem, temeer omdat ik ook het vermoeden heb dat het in de permissies zit
 
John D

John D

10/08/2010 11:32:22
Quote Anchor link
Peter aka Lekensteyn op 10/08/2010 10:53:37:
Ik denk niet dat de hoster poort 3306 blokkeert.
Als je met MySQL verbinding maakt controleert ie: <<<<<<<<<<<
Heren lezen we deze topic wel ? Wie controleert ?? en waarom de localhost oplossing (nick van der heijden) ?? De topic starter wil zijn website bij een "hoster" gegevens op laten halen uit een REMOTE database (zijn eigen databees thuis, op zijn eigen ip) en daar controleert de hoster dus niks en je kan zeer zeker geen root@localhost gebruiken. Het gaat er slechts om of de hoster poort 3306 naar buiten doorlaat en of er een alternatieve oplossing is (communiceren over een andere poort).
Gewijzigd op 10/08/2010 11:33:02 door John D
 
Nick van der heijden

nick van der heijden

10/08/2010 11:38:31
Quote Anchor link
oooh sorry dan heb ik het verkeert gelezen
 
De boer

de boer

10/08/2010 11:48:49
Quote Anchor link
De probleem definitie is precies zoals John D het beschrijft
 
John D

John D

10/08/2010 12:44:48
Quote Anchor link
Stel dat je hoster 3306 niet doorlaat in zijn firewall: Ik zou dan proberen om over poort 443 naar jouw MySQL database te gaan. Je kan de gebruikte poort meegeven in de connect string:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
mysql_connect  ([  string $server = ini_get("mysql.default_host")  [,  string $username = ini_get("mysql.default_user")  [,  string $password = ini_get("mysql.default_password")  [,  bool $new_link = false  [,  int $client_flags = 0  ]]]]] )

$server can also include a port number. e.g. "hostname:port"
In je eigen router forward je dan 443 naar 3306 naar je MySQL server.
Appeltje eitje! 443 is altijd open en vanwege het karakter (ssl) lekker vrij....en je kan gerust je hostname gebruiken, hoeft niet perse ip te zijn. Gebruik dan wel de host-name van je adsl verbinding (check www.watismijnip.nl). Ik gebruik dat voor diverse activiteiten (http, ssh, ftp)
Gewijzigd op 10/08/2010 12:59:04 door John D
 
De boer

de boer

10/08/2010 14:04:22
Quote Anchor link
Na alle waardevolle tips hier, kwam ik tot de conclusie dat id waarschijnlijk port 3306 geblokkeerd is, en ja hoor, bij navraag bij mijn webprovider werd dat bevestigd.

Overigens een uiting van de waardering voor de leden en de site phphulp !
Ik vind het fantastisch dat er op zo'n positieve manier altijd hulp wordt geboden

De oplossing van John lijkt me de moeite waard, dat ga ik uitproberen.
Op m'n LAMP server uitzoeken hoe die forward moet worden ingesteld.
Het wordt dan:

// Database connection
$db_database = 'Scores';
$db_host = 'Y:443';
 
P Lekensteyn

P Lekensteyn

10/08/2010 14:10:57
Quote Anchor link
Om te zien of je via jouw host verbinding kan maken met een externe database kun je fsockopen gebruiken om te zien of je verbinding kunt krijgen.
Een goede host ondersteund externe MySQL verbindingen, wie is jouw host?

Jij zegt dat je wel verbinding kunt krijgen met een touchscreen pc, maar die staat zeker in het netwerk?

Het gebruik van 443/80 is een lelijke oplossing, dat doet Skype bijvoorbeeld.
 
De boer

de boer

10/08/2010 14:19:54
Quote Anchor link
Ehhh de verbinding vanaf m'n touchscreen gaat rechtstreeks naar mijn LAMP server thuis, dat loop niet via de provider dus, en dat werkt.
Mijn provider is one.com

Behalve overstappen (duur, rompslomp) zou ik geen betere oplossing weten dan die van John
 
- SanThe -

- SanThe -

10/08/2010 14:28:43
 
John D

John D

10/08/2010 15:14:36
Quote Anchor link
De boer op 10/08/2010 14:04:22:
De oplossing van John lijkt me de moeite waard, dat ga ik uitproberen.
Op m'n LAMP server uitzoeken hoe die forward moet worden ingesteld.
Het wordt dan:
// Database connection
$db_database = 'Scores';
$db_host = 'Y:443';

Goed initiatief, gewoon vragen aan hoster. Verder: een forward stel je niet in op je LAMP server maar op je adsl modem/router. Die moet een inkomende verbinding op 443 forwarden via poort 3306 naar het ipnummer van je LAMP server waar MySQL draait.
en Y wordt dan jouw adsl hostnaam, bijvoorbeeld ip5659be49.speed.planet.nl en dat is dan je router die de call weer forward zoals ingesteld naar je MySQL
Edit:

maar afgezien dat ik dit een leuke vraag vind vraag ik mij af: Bij one.com krijg je toch ook gewoon een MySQL database erbij ? Daar gooi je toch al je gegevens even in? Nu moet je je peeceetje thuis 7x24 laten draaien en dat kost €60,- per jaar.
Gewijzigd op 10/08/2010 15:32:14 door John D
 

Pagina: 1 2 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.