J’ai obtenu l’erreur suivante depuis une requête MySQL.
``
Je n’ai pas même déclaré une clé de cette table, mais je n’ai pas les indices. Personne sait ce qui pourrait être le problème ?
J’ai obtenu l’erreur suivante depuis une requête MySQL.
``
Je n’ai pas même déclaré une clé de cette table, mais je n’ai pas les indices. Personne sait ce qui pourrait être le problème ?
Tout d'abord, vous devez savoir que les clés et les indices sont synonymes dans MySQL. Si vous regardez la documentation sur la Syntaxe CREATE TABLE, vous pouvez lire:
KEY
est normalement synonymeINDEX
. L'attribut cléPRIMARY KEY
peut également être spécifié comme justeKEY
lorsqu'il est administré dans une définition de colonne. Cela a été mis en œuvre pour assurer la compatibilité avec d'autres systèmes de base de données.
Maintenant, le genre d'erreur que vous obtenez peut être dû à deux choses:
Dans le premier cas, vous allez voir que l'ajout d'une limite à votre requête peut résoudre le problème temporairement. Si ce n'est pour vous, vous avez probablement un tmp
le dossier est trop petite pour la taille des requêtes que vous essayez de faire. Vous pouvez ensuite décider ou de faire tmp
plus grand, ou pour faire vos requêtes les plus petits! ;)
Parfois, tmp
est suffisamment grand, mais toujours est plein, vous devrez faire un nettoyage manuel dans ces situations.
Dans le second cas, il y a des problèmes avec MySQL données. Si vous pouvez ré-insérer les données facilement, je voudrais des conseils pour simplement supprimer/recréer la table, et ré-insérer les données. Si vous ne pouvez pas, vous pouvez essayer de réparer la table en place avec la RÉPARATION de la table. Il est généralement un processus long qui peut très bien échouer.
Regarder le complet de message d'erreur , vous bénéficiez de:
Incorrect key file for table 'FILEPATH.MYI'; essayer de le réparer
Il mentionne, dans le message que vous pouvez essayer de le réparer. Aussi, si vous regardez le véritable CHEMIN d'accès du fichier que vous obtenez, vous pouvez en savoir plus:
si c'est quelque chose comme /tmp/#sql_ab34_23f
cela signifie que MySQL a besoin de créer une table temporaire en raison de la taille de requête. Il les stocke dans /tmp, et qu'il n'y a pas assez d'espace dans votre /tmp pour que la table temporaire.
si elle contient le nom d'une table réelle au lieu de cela, cela signifie que ce tableau est très probablement endommagé et vous devez le réparer.
Si vous vous apercevez que votre problème est avec la taille de /tmp, il suffit de lire cette réponse à une question similaire pour la correction: MySQL, Erreur 126: clé Incorrecte de fichier pour la table.
Les instructions suivantes m’a permis de recréer mon répertoire tmp et résoudre le problème :
Notez qu’en modifiant la securetmp script Perl, vous pouvez définir manuellement la taille du répertoire tmp vous-même, mais juste en cours d’exécution du script a augmenté la taille du répertoire tmp sur notre serveur à partir d’environ 450 Mo à 4,0 Go.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.