[centos 5.4] Php wil niet met mysql verbinden

Pagina: 1
Acties:

  • Brains
  • Registratie: Oktober 2006
  • Laatst online: 04-03-2024
Hallo,

ik zit al de hele avond de pielen om php met mysql te laten verbinden en ben het nu zowat beu.

Ik heb twee servers, een met mysql en de ander met apache geintalleerd. Het verbinden met de database (mysql 5) gaat goed vanuit de server zelf, van de de "command line" van de webserver en vanaf mijn werkstation. Alleen wil php niet met de mysql server verbinden: er wordt een warning gegeven: Warning: mysql_connect() [function.mysql-connect]: Can't connect to MySQL server on '' (13) in ... on line x. Het commando geeft false terug ipv een resource.

Op de webserver is alleen de mysql client geinstalleerd, samen met php en php-mysql. De gegevens zijn te zien via het phpinfo();. De .so files zijn ook geladen. Maar php wil niet connecten. Zoeken naar error 13 resulteert in resutlaten over de mysql socket. Maar ik verbind met een andere server, dus het zou via tcp moeten. Het verreiken van de host met de bijbehorende poort wil ook niet baten.

Weet iemand waar dit probleem aan kan liggen? Ik wil liever geen mysql server erbij installeren, want die heb ik al.

  • Mike2k
  • Registratie: Mei 2002
  • Laatst online: 01-12 02:33

Mike2k

Zone grote vuurbal jonge! BAM!

geef een gewoon de ip addressen...nergens voor nodig om die er uit te filteren...

You definitely rate about a 9.0 on my weird-shit-o-meter
Chuck Norris doesn't dial the wrong number. You answer the wrong phone.


  • alm
  • Registratie: September 2001
  • Laatst online: 09:07

alm

Wellicht blokkeert de firewall op de server waar MySQL draait de inkomende requests?

  • Mike2k
  • Registratie: Mei 2002
  • Laatst online: 01-12 02:33

Mike2k

Zone grote vuurbal jonge! BAM!

alm schreef op zaterdag 19 december 2009 @ 01:46:
Wellicht blokkeert de firewall op de server waar MySQL draait de inkomende requests?
Nee.
Het verbinden met de database (mysql 5) gaat goed vanuit de server zelf, van de de "command line" van de webserver en vanaf mijn werkstation.

You definitely rate about a 9.0 on my weird-shit-o-meter
Chuck Norris doesn't dial the wrong number. You answer the wrong phone.


  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

Error 13 == permission denied. Welk OS draait die webserver? Als je dat krijgt op een TCP socket is dat meestal een uitgaande firewall regel.

All my posts are provided as-is. They come with NO WARRANTY at all.


  • CrankyGamerOG
  • Registratie: Juni 2003
  • Laatst online: 18:05

CrankyGamerOG

Assumption is the mother.....

CyBeR schreef op zaterdag 19 december 2009 @ 02:34:
Error 13 == permission denied. Welk OS draait die webserver? Als je dat krijgt op een TCP socket is dat meestal een uitgaande firewall regel.
of.....

edit

En correct me if im wrong.... MySQL draait tegenwoordig uit veiligheidsoverwegingen zo dat hij standaard alleen naar localhost luistert.

Lezen.... :/

Ook is het zo dat de user die je gebruikt of een % als host moet hebben of het ip vandaar waar je connect , anders krijg je ook een permission denied.

KPN - Vodafone Ziggo Partner


  • Brains
  • Registratie: Oktober 2006
  • Laatst online: 04-03-2024
Zo te zien zijn er meerdere die snachts nog bezig zijn... bij mij was het de laatste noodkreet en ben naar bed gegaan.

Beide machines draaien Centos 5.4. Alles start nu weer op. Zodra heb opgestart ik zal ik IPTables een uitzetten en nog een keer proberen.

---
code:
1
2
3
4
 service iptables stop
Flushing firewall rules:                                   [  OK  ]
Setting chains to policy ACCEPT: filter                    [  OK  ]
Unloading iptables modules:                                [  OK  ]


Maar nog steeds:
Warning: mysql_connect() [function.mysql-connect]: Can't connect to MySQL server on '192.168.0.150' (13) in /var/www/html/index.php on line 5
offtopic:
op verzoek met ip adres en regelnummer


Maar direct via de mysql client werkt wel
code:
1
2
3
4
5
6
7
8
9
mysql -p -u root -h 192.168.0.55
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.0.77 Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>

[ Voor 60% gewijzigd door Brains op 19-12-2009 10:32 ]


Verwijderd

setsebool -P httpd_can_network_connect=1

Leuk he, dat SELinux? :)

  • Brains
  • Registratie: Oktober 2006
  • Laatst online: 04-03-2024
ik heb nu selinux als op disabled gezeten krijg nu een andere melding:
Warning: mysql_connect() [function.mysql-connect]: Host '192.168.0.77' is not allowed to connect to this MySQL server in /var/www/html/index.php on line 5

SELinux is leuk, zeker als hoby amateur in linux. Mooi dat alles goed dicht zit, maar voor mij is het ene mooi puzzel. Heb hier nog wel een book liggen over Linux security en SELinux....

  • CrankyGamerOG
  • Registratie: Juni 2003
  • Laatst online: 18:05

CrankyGamerOG

Assumption is the mother.....

Brains schreef op zaterdag 19 december 2009 @ 10:44:
ik heb nu selinux als op disabled gezeten krijg nu een andere melding:
Warning: mysql_connect() [function.mysql-connect]: Host '192.168.0.77' is not allowed to connect to this MySQL server in /var/www/html/index.php on line 5

SELinux is leuk, zeker als hoby amateur in linux. Mooi dat alles goed dicht zit, maar voor mij is het ene mooi puzzel. Heb hier nog wel een book liggen over Linux security en SELinux....
CrankyGamerOG schreef op zaterdag 19 december 2009 @ 02:49:


Ook is het zo dat de user die je gebruikt of een % als host moet hebben of het ip vandaar waar je connect , anders krijg je ook een permission denied.
Die doorhaling moet dus weg :D

Je moet de user allowen te connecten van dat ip ;)
Nu moet ik je wel erbij zeggen dat je onduidelijk bent hoor, want je zegt in je post ergens dat je WEL vanaf een externe machine (je desktop) kon verbinden.

[ Voor 53% gewijzigd door CrankyGamerOG op 19-12-2009 10:54 ]

KPN - Vodafone Ziggo Partner


Verwijderd

Het probleem op de client is nu verholpen. Die nieuwe foutmeldiing slaat op de server. Je moet even in MySQL de gebruiker de juiste rechten geven via een GRANT query.

Bijvoorbeeld:
SQL:
1
GRANT ALL PRIVILEGES ON databasenaam.* TO gebruikersnaam@'123.123.123.123' IDENTIFIED BY 'wachtwoord'

Waarbij 123.123.123.123het IP adres van de client is.

  • Brains
  • Registratie: Oktober 2006
  • Laatst online: 04-03-2024
Maar via de command line client kan ik wel inloggen, alleen php wil _nog_ niet.

  • CrankyGamerOG
  • Registratie: Juni 2003
  • Laatst online: 18:05

CrankyGamerOG

Assumption is the mother.....

Brains schreef op zaterdag 19 december 2009 @ 10:53:
Maar via de command line client kan ik wel inloggen, alleen php wil _nog_ niet.
JA DE COMMANDLINE :D

die is lokaal ;) toch ?
omg je bent echt onduidelijk.
Verwijderd schreef op zaterdag 19 december 2009 @ 10:53:
Het probleem op de client is nu verholpen. Die nieuwe foutmeldiing slaat op de server. Je moet even in MySQL de gebruiker de juiste rechten geven via een GRANT query.

Bijvoorbeeld:
SQL:
1
GRANT ALL PRIVILEGES ON databasenaam.* TO gebruikersnaam@'123.123.123.123' IDENTIFIED BY 'wachtwoord'

Waarbij 123.123.123.123het IP adres van de client is.
Doe dan eerst de wildcard... dan weet je iig of het werkt, en daarbij de mysql staat lokaal dus maakt de allow all hosts "%" geen veiligheidsrisico.

[ Voor 53% gewijzigd door CrankyGamerOG op 19-12-2009 10:55 ]

KPN - Vodafone Ziggo Partner


Verwijderd

Niet per se natuurlijk. Met mysql -hhostnaam kun je prima connecten naar een andere MySQL server en lokaal je prompt krijgen.

  • CrankyGamerOG
  • Registratie: Juni 2003
  • Laatst online: 18:05

CrankyGamerOG

Assumption is the mother.....

Verwijderd schreef op zaterdag 19 december 2009 @ 10:56:
[...]

Niet per se natuurlijk. Met mysql -hhostnaam kun je prima connecten naar een andere MySQL server en lokaal je prompt krijgen.
Ja, dat weet ik ook wel hoor ;)

Maar hij is dus zo onduidelijk dat dat dus niet duidelijk is (rare zin!).

KPN - Vodafone Ziggo Partner


  • Brains
  • Registratie: Oktober 2006
  • Laatst online: 04-03-2024
Ik ben nog alleen op de "webserver" bezig. Daar kan ik via de command line client inloggen, zie een aantal posts hoger (-h 192.168.0.55). De gebruikers zijn allemaal aangemaakt met als host %, dus zou goed moeten zijn.

Het GRAND ALL commando heeft geeft affect, 0 affected rows.

Maar het werkt inmiddels, in config-file stonden nog "test" wachtworden om te kijken of het niet fout zat in mysql user/wachtwoord combinatie. Shame on me!

Nu nog even kijken naar dat stukj SELinux dat Cheetah opperde.... nu staat het namelijk helemaal uit.

[ Voor 31% gewijzigd door Brains op 19-12-2009 11:03 ]


Verwijderd

Brains schreef op zaterdag 19 december 2009 @ 11:00:
Het GRAND ALL commando heeft geeft affect, 0 affected rows.
Dat is altijd zo, dus dat zegt niets. Het moet wel een kwestie zijn van de juiste privileges toekennen, want dit is gewoon een duidelijke melding die van de server afkomstig is.

Mik anders eens die user weg en maak hem opnieuw aan met die GRANT query.
Nu nog even kijken naar dat stukj SELinux dat Cheetah opperde.... nu staat het namelijk helemaal uit.
Als je hier niet bekend mee bent kun je het inderdaad maar beter uitzetten in /etc/sysconfig/selinux. Of op PERMISSIVE zetten. Dan werkt het allemaal wel, maar worden er wel meldingen gelogd.

[ Voor 26% gewijzigd door Verwijderd op 19-12-2009 11:07 ]


  • Brains
  • Registratie: Oktober 2006
  • Laatst online: 04-03-2024
Php mag inmiddels inloggen (met SELinux disabled for now). De user had als host %, dus als ik de config van het php script nogmaals doorgelezen dan had ik gezien dat de fout daar zat.

Bedankt. Zodra SELinux weer aanstaat post ik nog een resume.
Pagina: 1