Gros bug MySQL
mercredi 16 août 2006 à 14:57 (Julien Tartarin)
Après la mise à jour du serveur qui héberge ce blog (et ceux de mes collègues associés et amis), plus rien ne fonctionnait...
Au début, l'erreur affichée était très bizarre :
Fatal error: Call to a member function isEmpty() on a non-object
L'objet en question était une variable définie quelque part dans la classe "recordset" de Dotclear... Un vrai bazar pour aller la retrouver... et constater que ça n'avançait à rien.
Par chance, sur mon blog j'ai une requête SQL perso pour les tags (le plugin me plaisait pas), et elle échouait aussi. Un coup de "or die(mysql_error())" et j'ai pu voir la fameuse et surtout véritable erreur.
L'erreur ressemblait à ça :
Can't create/write to file './tmp/#sql-4e68_8.frm' (Errcode: 13)
Après recherche sur Google, j'ai trouvé une FAQ Wordpress qui a résumé le problème et sa solution :
Problem: The MySQL variable tmpdir is set to a directory that cannot be written to when using PHP to access MySQL.
To verify this, enter MySQL at the command line and type show variables;
You'll get a long list and one of them will read: tmpdir = /somedir/ (whatever your setting is.)
Solution: Alter the tmpdir variable to point to a writable directory.
Changer le dossier étant inutile à mon goût, j'ai juste chmodé /var/tmp en 777 puisqu'il était bizarrement devenu read-only (sauf par l'user root).
Et tout a remarché d'un coup (sauf le cache de Firefox...).
