Toon posts:

[PHP & MySQL] Connecties op MySQL-servers lukken niet

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Situatie: laptop op een Telenetlijn, Apache2 als webserver op poort 1111, MySQL-server geïnstalleerd en werkend, PHP geïnstalleerd en werkend.

Probleem: ik geraak niet geconnect op MySQL-servers via scripts die ik op mijn eigen webserver draai. Ik krijg steeds de error dat er geen verbinding met de MySQL-server gemaakt kan worden. Ik heb geprobeerd met "localhost", "sloefke.ath.cx" (dynamische domeinnaam die naar mijn IP verwijst) en met "mysql.ulyssis.org" (externe MySQL-server die zéker werkt).

Als ik een werkende site (die ik ooit eens gemaakt heb en die perfect draait op mijn webruimte bij Ulyssis) download en op mijn eigen webserver draai, krijg ik eveneens die errors (die site probeert op Ulyssis te connecten).

Als ik mijn nieuw script upload naar Ulyssis werkt het wél met de Ulyssis-MySQL-server maar níet met mijn eigen MySQL-server.

Iemand een idee wat er fout gaat? Ik heb mijn php.ini en configfile van Apache al eens doorgelezen maar ik heb niets gevonden dat er op zou kunnen wijzen dat er geen connecties gemaakt kunnen worden.
PHP en Apache enzo werken perfect en MySQL op zich ook (database en tabellen zijn klaar om gebruikt te worden), alleen gaat de communicatie tussen die delen ergens scheef.

Help :)

-mod-: misschien even samenvatten:

Eigen server:
@ $db = mysql_pconnect("sloefke.ath.cx", "u", "p"); werkt niet
@ $db = mysql_pconnect("mysql.ulyssis.org", "u", "p"); werkt niet

Ulyssis-server:
@ $db = mysql_pconnect("sloefke.ath.cx", "u", "p"); werkt niet
@ $db = mysql_pconnect("mysql.ulyssis.org", "u", "p"); werkt

-mod²-: poort meegeven aan server-string werkt ook niet.

[ Voor 29% gewijzigd door Verwijderd op 19-02-2005 19:46 ]


Acties:
  • 0 Henk 'm!

  • Robtimus
  • Registratie: November 2002
  • Laatst online: 19:51

Robtimus

me Robtimus no like you

Een verbinding maken vanaf een andere machine werkt meestal niet uit veiligheidsredenen.

Hoe connect je? Wat zijn de foutmeldingen? (mysql_error, evt een "or die(mysql_error)")
En wat is de uitvoer van het volgende (in een console of in PHPMyAdmin):
SQL:
1
2
USE mysql;
SELECT user, password, host FROM user;

Persoonlijk denk ik dat het komt omdat je connect zonder login; dan moet je MySQL server dat wel ondersteunen.

[ Voor 6% gewijzigd door Robtimus op 19-02-2005 19:40 ]

More than meets the eye
There is no I in TEAM... but there is ME
system specs


Acties:
  • 0 Henk 'm!

Verwijderd

Kijk én in de mysqlrechten vanaf welke host de verbindingen worden toegestaan, maar ook even in je firewall of die poorten open staan :)

Als je eventueel achter een router zit kijk dan even of je de poorten goed hebt staan.

Acties:
  • 0 Henk 'm!

  • m33p
  • Registratie: September 2002
  • Laatst online: 05-09 15:26
Hmz omdat dat leeg is wil niet zeggen dat ie zonder username/pass inlogt ;) Er zit wel wat in je MySQL config waar je kunt instellen of je remote mag connecten of niet. Ook moet de juiste poort openstaan (3363 ofzo d8 ik, kun je zo nazoeken)...

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Heu, ik connect wel degelijk met een login, heb gewoon die strings verwijderd ;) Zal het even verbeteren.

-mod-: poort is 3306 en staat open voor zover ik weet, ik zit niet achter een router.

[ Voor 30% gewijzigd door Verwijderd op 19-02-2005 19:45 ]


Acties:
  • 0 Henk 'm!

Verwijderd

En skipnetworking staat niet aan in je my.cnf? of de .ini onder windows?

Anders accepteert tie geen tcp connecties :)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Verwijderd schreef op zaterdag 19 februari 2005 @ 19:48:
En skipnetworking staat niet aan in je my.cnf? of de .ini onder windows?

Anders accepteert tie geen tcp connecties :)
skip-networking staat niet aan in de ini-files waar ik hem in vind.

De error die ik krijg via het script is "Access denied for user 'essis'@'d51537537.access.telenet.be' (using password: YES)". Die error krijg ik ook als ik "mysql -u essis -h sloefke.ath.cx -p" gebruik in console en daarna mijn paswoord intyp.
Wat wél werkt is gewoon "mysql -u essis -p" natuurlijk.

Instellen of remote connecties toegelaten zijn en van waar, waar vind ik dat in die ini-files? Ik heb er namelijk zeven: my.ini, my-huge.ini, ...

[ Voor 26% gewijzigd door Verwijderd op 19-02-2005 19:54 ]


Acties:
  • 0 Henk 'm!

  • Sybr_E-N
  • Registratie: December 2001
  • Laatst online: 21:46
Bestaat die user wel in de mysql.user table? Misschien dat de privileges voor die specifieke user niet goed zijn ingesteld. Hier en hier staat wat specifiekere informatie over de user table.
edit:
Aha die user bestaat dus wel nevermind...Maar mag die user wel connections aangaan met gebruikers van buitenaf?

[ Voor 17% gewijzigd door Sybr_E-N op 19-02-2005 19:55 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Sybr_E-N schreef op zaterdag 19 februari 2005 @ 19:54:
Bestaat die user wel in de mysql.user table? Misschien dat de privileges voor die specifieke user niet goed zijn ingesteld. Hier en hier staat wat specifiekere informatie over de user table.
edit:
Aha die user bestaat dus wel nevermind...Maar mag die user wel connections aangaan met gebruikers van buitenaf?
User privileges zijn goed ingesteld, zoals ik zei kan ik gewoon connecten door de hostnaam weg te laten op mijn server zelf. Blijkbaar wordt de hostnaam erachter geplaatst, wat de loginnaam verandert natuurlijk ...

-mod-: aha, bij het maken van de privileges heb ik grant to 'essis'@'localhost' gedaan in plaats van 'essis'@'*' natuurlijk. Hoe stom.

-mod²-: hm, nu heb ik mijn grants op die essis-database aangepast naar alle hosts, maar ik geraak nog steeds niet binnen op de mysql-server zelf. Hoe moet ik dat granten?

[ Voor 21% gewijzigd door Verwijderd op 19-02-2005 20:05 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Grrr, MySQL werkt tegen.

Als ik als root user
grant select, insert, update, delete, index, alter, create, drop on essis.* to 'essis'@'%';
doe, dan krijg ik dat de query ok is maar als ik dan als user essis inlog en "show grants" doe, krijg ik dit:

code:
1
2
3
4
5
6
7
8
-------------------------------+
| Grants for essis@localhost
                               |
+-------------------------------------------------------------------------------
-------------------------------+
| GRANT USAGE ON *.* TO 'essis'@'localhost' IDENTIFIED BY PASSWORD 'yaddayadda' |
+-------------------------------------------------------------------------------
-------------------------------+

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Om van de miserie af te zijn gewoon even snel een nieuwe user aangemaakt met als naam essis_user en als paswoord niets. En het werkt.
Of liever: werkte. Ik heb nu net een paswoord ingesteld voor die user en nu krijg ik de mysql-error "Client does not support authentication protocol requested by server; consider upgrading MySQL client". Ik heb de laatste MySQL-versie.

-mod-: zonet even paswoord terug naar blanco veranderd, en het script werkt weer. Paswoord weer naar een niet-lege string, error terug.

[ Voor 18% gewijzigd door Verwijderd op 19-02-2005 21:01 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Verwijderd schreef op zaterdag 19 februari 2005 @ 20:58:
Om van de miserie af te zijn gewoon even snel een nieuwe user aangemaakt met als naam essis_user en als paswoord niets. En het werkt.
Of liever: werkte. Ik heb nu net een paswoord ingesteld voor die user en nu krijg ik de mysql-error "Client does not support authentication protocol requested by server; consider upgrading MySQL client". Ik heb de laatste MySQL-versie.

-mod-: zonet even paswoord terug naar blanco veranderd, en het script werkt weer. Paswoord weer naar een niet-lege string, error terug.
aha dit is al eerder aan bod gekomen, zoek even op mysql icm old-passwords. De mysqli extensie wordt geprefereerd onder MySQL 4.1, maar als je nog php4 gebruikt net zoals ik moet je authenticatiemethode even aanpassen. Hier is genoeg over te vinden.

Succes :)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Verwijderd schreef op zaterdag 19 februari 2005 @ 21:04:

aha dit is al eerder aan bod gekomen, zoek even op mysql icm old-passwords. De mysqli extensie wordt geprefereerd onder MySQL 4.1, maar als je nog php4 gebruikt net zoals ik moet je authenticatiemethode even aanpassen. Hier is genoeg over te vinden.

Succes :)
Yeah, had het net gevonden via Google :)
Niet ideaal, maar nu kan ik tenminste verderwerken.

Merci voor alle hulp :)
Pagina: 1