Van afstand verbinden met Mysql Database

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Wouter R

Wouter R

27/08/2012 10:14:52
Quote Anchor link
Ik wil mijn database op mijn webserver van afstand gaan benaderen maar het lukt met niet om 'm aan de praat te krijgen. Het lokaal aanspreken van de database werkt perfect.

Systeem:
- Windows Server 2008 Web Edition
- IIS 7
- Mysql 5.1.56

De volgende dingen heb ik al geprobeerd:
- Volledige toegang (ALL PRIVILEGES) voor betreffende database gebruiker en toegang van elke host ("%")
- Uitzetten Windows Firewall en openen poort 3306 op externe firewall
- De volgende code toegevoegd een my.ini:

Quote:
# The MySQL server
[mysqld]
basedir = "C:\rootfolder\MySQL\"
datadir = "C:\rootfolder\MySQL\data\"
port = 3306
#socket = "MySQL"
socket = "TCP/IP"
skip-locking
key_buffer = 16M
max_allowed_packet = 1M
table_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M

# Don't listen on a TCP/IP port at all. This can be a security enhancement,
# if all processes that need to connect to mysqld run on the same host.
# All interaction with mysqld must be made via Unix sockets or named pipes.
# Note that using this option without enabling named pipes on Windows
# (via the "enable-named-pipe" option) will render mysqld useless!
#
#skip-networking
#enable-named-pipe
bind-address=0.0.0.0


Wanneer ik probeer te verbinden gebruik ik:
- Het publieke IP van de server
- Username met alle privileges
- Bijbehoorend wachtwoord
- Poort 3306

Squeal Pro (het programma waarmee ik wil verbinden) geeft de volgende melding terug:

Quote:
Unable to connect to host IP, or the request timed out.

Be sure that the address is correct and that you have the necessary privileges, or try increasing the connection timeout (currently 10 seconds).

MySQL said: Can't connect to MySQL server on 'IP' (4)


Iemand een suggestie?
 
PHP hulp

PHP hulp

16/04/2024 16:09:01
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

27/08/2012 10:23:46
Quote Anchor link
Heb je de port ook geforwarded in je router?
 
Wouter R

Wouter R

27/08/2012 10:29:06
Quote Anchor link
Dat regelt het datacentre waar onze server hangt (zij beheren de router/firewall) dus daar ga ik wel van uit ;-)
 
John Berg

John Berg

27/08/2012 10:31:25
Quote Anchor link
MySQL server opnieuw starten, zodat hij de my.cnf leest?

n.b. je geeft privileges voor elke host, daar zou je eigenlijk een IP of subnet moeten geven. Elke host is OK om te testen, maar een serieus veiligheidslek in productie.
 
Wouter R

Wouter R

27/08/2012 10:37:06
Quote Anchor link
Dat klopt. De wildcard is alleen om te testen!

Mysql server alsook gehele server al meerdere malen herstart, zonder effect...
 
Aad B

Aad B

27/08/2012 10:45:42
Quote Anchor link
De fout is: Unable to connect to host IP, or the request timed out dus de tcp/ip verbinding komt er niet. MySQL server opnieuw starten zal niet helpen. Overleg met je datacenter over de verbinding. Probeer de verbinding met een telnet tool naar het poortnummer, dat moet een basale melding tonen waarna je weet dat de verbinding okee is. Vervolgens met Squeal Pro aan de slag. Is de poort 3306 misschien geblocked VANUIT het netwerk waarin je zit om contact te krijgen? Je probeert dit toch hopelijk niet vanuit hetzelfde netwerk als waar de MySQL server staat? Dan werkt het zeer zeker niet.
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

27/08/2012 10:51:20
Quote Anchor link
Vreemd, ik heb er geen problemen mee. Gewoon poort 3306 open gezet in windows firewall en ook niks aangepast in mysql.ini.
 
Wouter R

Wouter R

27/08/2012 10:56:11
Quote Anchor link
Het lijkt 'm toch in de connectie te zitten naar de server toe. Zowel telnet op het workstation (btw, niet op hetzelfde netwerk) als ook externe tools op internet geven 3306 als gesloten aan. Ik heb het nog eens nagevraagd bij de data provider.
 
Aad B

Aad B

27/08/2012 11:08:13
Quote Anchor link
Eventueel zou je eens een portscan kunnen proberen op het ipnummer. Je krijgt dan een rapport van alle benaderbare/reagerende poorten. De naam klinkt afgezaagd maar ik heb daar ooit ergens een tooltje voor gedownload, portscan.exe
Gewijzigd op 27/08/2012 11:08:44 door Aad B
 
Chris PHP

Chris PHP

27/08/2012 13:39:23
Quote Anchor link
Begin eens om het bind-address=0.0.0.0 eens te binden aan je eigen IP adres. En controleer of de remote control van MySQL wel toegestaan wordt.

9 van de 10 hosting bedrijven hebben dit uitstaan, aangezien dit zeer onveilig is. Beter is gewoon een RDP (aangezien je op Windows draait) sessie te starten en zo 'lokaal' je MySQL te benaderen.

Nu ben je alsnog remote op je complete server en kun je alles beheren.
 
- SanThe -

- SanThe -

27/08/2012 14:46:56
 
Aad B

Aad B

27/08/2012 14:50:13
Quote Anchor link
NIET DOEN: "bind-address=0.0.0.0 eens te binden aan je eigen IP adres", dan werkt het helemaal niet meer. The address you specify in bind tells mysql where to listen. 0.0.0.0 is a special address, which means "bind to every available network".

Het RDP alternatief van Chris is een workaround maar RDP en Windows is nou niet de meest betrouwbare koppeling. Je uitgangspunt de database op afstand beheren kan je in MySQL (later) heel strak configureren en bijvoorbeeld toestaan vanaf 1 andere server/client
 
John Berg

John Berg

27/08/2012 14:54:34
Quote Anchor link
Aad B op 27/08/2012 14:50:13:
RDP en Windows is nou niet de meest betrouwbare koppeling.


:-)
 
Chris PHP

Chris PHP

27/08/2012 15:05:13
Quote Anchor link
Aad B op 27/08/2012 14:50:13:
NIET DOEN: "bind-address=0.0.0.0 eens te binden aan je eigen IP adres", dan werkt het helemaal niet meer. The address you specify in bind tells mysql where to listen. 0.0.0.0 is a special address, which means "bind to every available network".

Het RDP alternatief van Chris is een workaround maar RDP en Windows is nou niet de meest betrouwbare koppeling. Je uitgangspunt de database op afstand beheren kan je in MySQL (later) heel strak configureren en bijvoorbeeld toestaan vanaf 1 andere server/client


LOL, bind op 0.0.0.0 is NIET DOEN, bind koppelen aan het IP adrs zorgt ervoor dat hij maar naar 1 ip adres luisterd. Je eigen misschien eerst eens verdiepen voordat je CAPS gaat gebruiken. NU heeft hij bind op 0.0.0.0 staan, zie zijn OP.

Hoe kom je erbij dat RPD sessies niet veilig zijn? Nogmaals verdiep je eens in de stof voordat je dingen gaan roepen. Bij een goede opstelling is dit wel degelijk veilig!
 
John Berg

John Berg

27/08/2012 15:08:23
Quote Anchor link
@Chris: de bind gaat over de koppeling aan de netwerk interfaces van de locale mysql server. Wil je op alle interfaces luisteren moet je 0.0.0.0 invoeren.

Als je daar een remote adress invult is je MYSQL server meteen niet meer bereikbaar.
 
Chris PHP

Chris PHP

27/08/2012 15:11:15
Quote Anchor link
John Berg op 27/08/2012 15:08:23:
@Chris: de bind gaat over de koppeling aan de netwerk interfaces van de locale mysql server. Wil je op alle interfaces luisteren moet je 0.0.0.0 invoeren.

Als je daar een remote adress invult is je MYSQL server meteen niet meer bereikbaar.


Dat is niet wat ik bedoel, mijn punt was, je zet bind NOOIT op 0.0.0.0, aangezien hij dan naar alles luistert. Vandaar dat ik zeg, bind hem aan je eigen IP als je bind gebruikt. Niet aan je prive IP, maar aan je locale server IP!

Het gaat hier om veiligheid.
 
John Berg

John Berg

27/08/2012 15:14:22
Quote Anchor link
Chris NVT op 27/08/2012 15:11:15:
John Berg op 27/08/2012 15:08:23:
@Chris: de bind gaat over de koppeling aan de netwerk interfaces van de locale mysql server. Wil je op alle interfaces luisteren moet je 0.0.0.0 invoeren.

Als je daar een remote adress invult is je MYSQL server meteen niet meer bereikbaar.


Dat is niet wat ik bedoel, mijn punt was, je zet bind NOOIT op 0.0.0.0, aangezien hij dan naar alles luistert. Vandaar dat ik zeg, bind hem aan je eigen IP als je bind gebruikt. Niet aan je prive IP, maar aan je locale server IP!

Het gaat hier om veiligheid.


Pffffft ... als je een remote connectie wil zet de bind ALTIJD op 0.0.0.0
Je wil immers luisteren op de locale 127.0.0.1 en op eth1 wat het outside world adres is.

Engels is voor sommigen een heel lastige taal ...
 
Chris PHP

Chris PHP

27/08/2012 15:17:51
Quote Anchor link
John Berg op 27/08/2012 15:14:22:
Pffffft ... als je een remote connectie wil zet de bind ALTIJD op 0.0.0.0
Je wil immers luisteren op de locale 127.0.0.1 en op eth1 wat het outside world adres is.

Engels is voor sommigen een heel lastige taal ...


Nou dan bind jij toch je MySQL op 0.0.0.0, zodat elke harrie je MySQL server kan benaderen. Waarom denk je nu dat 9 van de 10 providers dit uitschakelen? Om je te pesten ofzo?

Nee ze willen dat je een RPD of SSH sessie/connectie maakt, zodat je 'lokaal' je server rechtstreeks benaderd en niet via MySQL rechtstreeks.

Zodra ik jou config.php vind en je root heb, kan ik zo remote inloggen op je MySQL zonder problemen. Kwestie van een ping naar de MySQL host voor het IP adres en klaar.

En hoezo eth1? Standaard is je eerste ethernet controller eth0, en misschien zit hij bij mij wel op de 4de controller.

P.S. Houdt je domme opmerkingen voor je A.U.B.
Gewijzigd op 27/08/2012 15:21:25 door Chris PHP
 
John Berg

John Berg

27/08/2012 15:26:30
Quote Anchor link
@Chris: mijn MySQL host zit op 159.253.4.112 Het password van de MySql server is Hebr@w1
 
Chris PHP

Chris PHP

27/08/2012 15:29:25
Quote Anchor link
John Berg op 27/08/2012 15:26:30:
@Chris: mijn MySQL host zit op 159.253.4.112 Het password van de MySql server is Hebr@w1


Zal het je laten zien zodra ik terug ben.
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

27/08/2012 19:22:27
Quote Anchor link
Ik wed op John.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
CREATE USER 'chrisnvt'@'localhost' IDENTIFIED BY 'eigenwijs'

Dat is waar de beveiliging ligt, en niet in de binding address
 

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.