24. februar 2005 - 08:26Der er
37 kommentarer og 1 løsning
Manglende MyQSL-connenction via PHP
1) Jeg er newbee hvad MySQL (og databaser generelt) angår. 2) <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="content-type" content="text/html;charset=iso-8859-1"> <title>PHP og MySQL</title> </head> <body> <?php $dbcnx = mysql_connect('localhost', 'root', 'XXXXXmit_kodeordXXX'); if (!$dbcnx) { echo( '<p>Unable to connect to the ' . 'database server at this time.</p>' ); exit(); } ?> </body> </html>
Warning: mysql_connect(): Client does not support authentication protocol requested by server; consider upgrading MySQL client in C:\amp\Apache2\htdocs\mennesker\mennesker\mennesker\visning.php on line 14
Unable to connect to the database server at this time.
3) Hvad gør jeg galt ? Har det noget med configurationen af min MySQL at gøre (eller mådke min Apache?)
I øvrigt er det dårlig stil at connecte med root fra selve hjemmesiden. Du bør oprette en bruger, der har de rettigheder, den skal bruge fra hjemmesiden, men hvis du har bare et lille sikkerhedshul i din kode, kan man ødelægge din database fuldstændig, fordi det er din root, der er logget ind.
En måde at løse problemet på kan være at begrænse længden på 'Password' feltet i 'user' tabellen i 'mysql' databasen. Det nye password format fylder 32 byte, så hvis du sætter længden til fx 16, vil MySQL automatisk bruge det gamle format. Altså i den her stil:
ALTER TABLE `user` CHANGE `User` `User` VARBINARY(16) NOT NULL
Efter at have logget ind via 'use mysql;' i konsollen får jeg at vide at der er en syntaksfejl i: ALTER TABLE `user` CHANGE `Password` `Password` VARCHAR( 20 ) NOT NULL
Hvis du har loadet mysqli extension, kan du godt bruge den. Men så længe den ikke er udbredt på diverse webhoteller, vil det være inkompatibelt ved evt. upload til disse.
Opdater til php 5+ (den kan bruge php_mysqli som kan snakke med mysql 4.1+ interfacet ).
Ellers installér en mysql version tidligere end 4.1.
Ellers lav password workaround som prøvet ovenfor. Gå ind i mysql komanndo prompten og skriv: SET PASSWORD FOR 'brugernavn'@'localhost' = OLD_PASSWORD('password');
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.