Bonjour à toutes et à tous, j'ai un gros souci sur mon site, à la place de la page d'accueil j'ai une page blanche avec ce message:
Can't find file: 'utilisateur.MYI' (errno: 2)
J'ai donc voulu aller voir dans la table utilisateur dans MYSQL et impossible:
Voila l'erreur que j'ai:
SHOW INDEX FROM `utilisateur` ;
MySQL a réponduocumentation
#1017 - Can't find file: 'utilisateur.MYI' (errno: 2)
Si quelqu'un pouvait m'aider, j'ai eu beau chercher partout je ne trouve rien à ce sujet, le site etant un site commercial je suis bien évidemment dans la mer** la plus profonde
Par avance merci.
Vu la situation je vais essayer de t'aider. De mon mieux, sachant que je ne suis pas un crack de MySQL. Je préfère largement PostgreSQL à ce joujou comme je préfère largement C++ au joujou Java. :) Si tu as parcouru un peu ce forum, tu sais ce que je veux dire :)
Bon commençons par la mauvaise nouvelle:
- Le message d'erreur peut vouloir dire purement et simplement que la table utilisateur n'existe pas (ou plus) et que tu vas devoir la re-créer éventuellement à partir d'une sauvegarde.
MAIS
La bonne nouvelle maintenant:
La table existe peut être quand même. Ce que tu peux normalement vérifier avec SHOW TABLES.
Si elle existe, c'est peut être simplement un problème de casse. Notamment si tu es sur un système sensible à la casse comme Linux ou autre Unix.
Si tu es sous Windows et si dans ta requête tu nommes plusieurs fois la table dans ta requête, faut que ça soit toujours dans la même casse je crois.
Exemple pas bon
SELECT utilisateur.nom, Utilisateur.prenom FROM UTILISATEUR
Exemple ok
SELECT utilisateur.nom, utilisateur.prenom FROM utilisateur
En espérant que ça te sorte de ta .... ¤¤¤¤ ... heu situation :D
Bonjour,
Je ne vois pas la différence entre les deux....
Le nom de la table est `utilisateur` ou `UTILISATEUR` (en minuscules ou en MAJUSCULES... )
Ce que j'ai voulu dire c'est que la table doit être nommée de la même façon dans toute la requête, que ce soit utilisateur, Utilisateur ou UTILISATEUR
Oui, là je suis d'accord.
Mais MySQL n'est pas sensible à la casse, si ?
En tous cas, je ne pense pas que son probleme vienne de là...
Et bien si il peut l'être.
C'est d'ailleurs mentionné quelque part dans la doc. Je ne sais plus où, mais je me rappelle bien l'avoir vu.
Et bien peut être que si.
Toujours en référence à la doc sus-mentionnée, le message d'erreur du posteur initial est émis quand une table est carrément absente, où bien quand il y a de sombres histoires de casse. J'en suis sûr, sinon je ne me serai pas permis de répondre n'importe quoi. :)
Voilà j'ai retrouvé où c'était:
http://dev.mysql.com/doc/refman/5.0/en/cannot-find-table.html
J'en cite un bout:
M'enfin :!:
oups...
Comme j'ai toujours ecris en miniscule sur MySql (nom des tables et des champs) je le savais pas. Merci pour l'info :wink:
La prochaine fois tiens toujours compte de la case. ça t'évitera certains problème que tu metteras longtemps a remarquer par rapport à sa complexité... Et puis tu prendras moins de risque :
sous certains OS comme sous Linux voir MAC OSX (puisque basé sur FreeBSD) la case est plus qu'importante...
Sous certains environnements ou outils de programmation aussi, la preuve est faites.
Et puis ça reste logique : regarde le code ASCII de "A" et le code ASCII de "a" c'est pas les même :lol: :lol:
:wink:
Ce qui est une bonne pratique. En tous cas, je fais comme toi :)
Enfin, quand j'en ai la possibilité, parce que quand il arrive de devoir travailler sur des bases de données existantes, alors là, on voit de tout :(