DB function failed with error number 126

Réduire
X
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • [Problème] DB function failed with error number 126

    Bonjour,
    Je transfère ici le problème posté dans "Sauvegarde et restauration" en espérant y trouver une réponse.
    Je n'arrive plus à accéder à la Gestion des Articles, voici le message que j'obtiens :
    500 - Une erreur s'est produite

    DB function failed with error number 126
    Incorrect key file for table '/tmp/#sql_353b_1.MYI'; try to repair it SQL=SELECT c.*, g.name AS groupname, cc.title AS name, u.name AS editor,
    f.content_id AS frontpage, s.title AS section_name, v.name AS author FROM jos_content AS c LEFT JOIN jos_categories AS cc ON cc.id = c.catid LEFT
    JOIN jos_sections AS s ON s.id = c.sectionid LEFT JOIN jos_groups AS g ON g.id = c.access LEFT JOIN jos_users AS u ON u.id = c.checked_out LEFT JOIN
    jos_users AS v ON v.id = c.created_by LEFT JOIN jos_content_frontpage AS f ON f.content_id = c.id WHERE c.state != -2 ORDER BY section_name ,
    section_name, cc.title, c.ordering LIMIT 0, 30

    J'ai restauré la base de données, mais mes sauvegardes sont toutes postérieures au problème. J'ai réparé toutes les tables par Phpmyadmin, mais rien n'y fait.
    Auriez-vous une solution à me proposer?

    Voici la dernière réponse de mon hébergeur à qui j'ai demandé de transférer la base sur un autre serveur:
    Nous n'avons pas changer vos bases de données de serveur car nous avons trouvé la source du problème. Il s'agit d'une requête qui, lors de l'exécution, remplit instantanément la partition /tmp avec un fichier temporaire de plus de 2GB. Ce qui génère l'erreur.


    Le seul moyen est de revoir la requête:

    mysql> explain SELECT c . * , g.name AS groupname, cc.title AS name, u.name AS editor,
    -> f.content_id AS frontpage, s.title AS section_name, v.name AS author
    -> FROM jos_content AS c
    -> LEFT JOIN jos_categories AS cc ON cc.id = c.catid
    -> LEFT JOIN jos_sections AS s ON s.id = c.sectionid
    -> LEFT JOIN jos_groups AS g ON g.id = c.access
    -> LEFT JOIN jos_users AS u ON u.id = c.checked_out
    -> LEFT JOIN jos_users AS v ON v.id = c.created_by
    -> LEFT JOIN jos_content_frontpage AS f ON f.content_id = c.id
    -> WHERE c.state != -2
    -> ORDER BY section_name, section_name, cc.title, c.ordering
    -> LIMIT 0 , 30
    -> ;
    +----+-------------+-------+--------+-------------------------------------+---------+---------+---------------------------+--------+----------------------------------------------+
    | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
    +----+-------------+-------+--------+-------------------------------------+---------+---------+---------------------------+--------+----------------------------------------------+
    | 1 | SIMPLE | c | ALL | idx_state,idx_state_created_by_hits | NULL | NULL | NULL | 300265 | Using where; Using temporary; Using filesort |
    | 1 | SIMPLE | cc | eq_ref | PRIMARY | PRIMARY | 4 | xxxxxx.c.catid | 1 | |
    | 1 | SIMPLE | s | eq_ref | PRIMARY | PRIMARY | 4 | xxxxxx.c.sectionid | 1 | |
    | 1 | SIMPLE | g | eq_ref | PRIMARY | PRIMARY | 1 | xxxxxx.c.access | 1 | |
    | 1 | SIMPLE | u | eq_ref | PRIMARY | PRIMARY | 4 | xxxxxx.c.checked_out | 1 | |
    | 1 | SIMPLE | v | eq_ref | PRIMARY | PRIMARY | 4 | xxxxxx.c.created_by | 1 | |
    | 1 | SIMPLE | f | eq_ref | PRIMARY | PRIMARY | 4 | xxxxxx.c.id | 1 | Using index |
    +----+-------------+-------+--------+-------------------------------------+---------+---------+---------------------------+--------+----------------------------------------------+
    7 rows in set (0.00 sec)

    Je vous invite à contacter le support de Joomla à ce sujet ou de contacter un webmaster qui pourra corriger la requête en question.

    Merci pour votre aide.
    Dernière édition par baga à 05/11/2010, 15h30
    Baga
    http://www.afropages.fr La synthèse africaine.

  • #2
    DB function failed with error number 126
    Incorrect key file
    MySQL reporte correctement l'erreur indiquant une clé (primaire certainement) incorrecte.

    Nous n'avons pas changer vos bases de données de serveur car nous avons trouvé la source du problème. Il s'agit d'une requête qui, lors de l'exécution, remplit instantanément la partition /tmp avec un fichier temporaire de plus de 2GB. Ce qui génère l'erreur.
    Un temporaire de 2 gigas sur un ensemble de jointures est très rare. Par contre si un index est altéré, et que le REPAIR TABLE (qui utilise l'ISAM sous jacent pour réparer les entrées de données, mais pas les index) ne parvient pas à le remettre debout, il faut noter la définition des index, supprimer tous les index puis les reconstruire, ce qui, dans tous les cas, résoud ce problème.

    La requête citée est utilisée par tous les joomla, y compris des sites avec plusieurs centaines de milliers d'articles, sans jamais générer de tables temporaires de plus de 50 ou 60 kilos... Ce qui implique que la piste d'un index KO soit celle à suivre.
    Pas de demande de support par MP.
    S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

    Commentaire


    • #3
      Envoyé par jisse03 Voir le message
      MySQL reporte correctement l'erreur indiquant une clé (primaire certainement) incorrecte.


      Un temporaire de 2 gigas sur un ensemble de jointures est très rare. Par contre si un index est altéré, et que le REPAIR TABLE (qui utilise l'ISAM sous jacent pour réparer les entrées de données, mais pas les index) ne parvient pas à le remettre debout, il faut noter la définition des index, supprimer tous les index puis les reconstruire, ce qui, dans tous les cas, résoud ce problème.

      La requête citée est utilisée par tous les joomla, y compris des sites avec plusieurs centaines de milliers d'articles, sans jamais générer de tables temporaires de plus de 50 ou 60 kilos... Ce qui implique que la piste d'un index KO soit celle à suivre.
      Merci, je vais donc, supprimer et recréer les index des 5 tables citées.
      Baga
      http://www.afropages.fr La synthèse africaine.

      Commentaire


      • #4
        J'ai recréé tous les index, mais cela n'a rien changé!
        D'autres idées?
        Merci
        Baga
        http://www.afropages.fr La synthèse africaine.

        Commentaire


        • #5
          Combien as tu d'articles, sections, catégories et users ?

          Mais même avec 100.000 articles, 20.000 users et quelques centaines de catégories, en général les tables temporaires sont minuscules.

          Je viens de tester la requête sur un de mes joomla avec 143.000 articles, 850 users, 164 catégories. Exécution de la requête en 0.85103 seconde, et table temporaire de 11 Ko...

          Ce qui implique de fait une anomalie dans ta base.
          Dernière édition par jisse03 à 05/11/2010, 18h58
          Pas de demande de support par MP.
          S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

          Commentaire


          • #6
            Envoyé par jisse03 Voir le message
            Combien as tu d'articles, sections, catégories et users ?

            Mais même avec 100.000 articles, 20.000 users et quelques centaines de catégories, en général les tables temporaires sont minuscules.

            Je viens de tester la requête sur un de mes joomla avec 143.000 articles, 850 users, 164 catégories. Exécution de la requête en 0.85103 seconde, et table temporaire de 11 Ko...

            Ce qui implique de fait une anomalie dans ta base.
            La description de la base dans le fichier PDF joint.
            DB.pdf
            Baga
            http://www.afropages.fr La synthèse africaine.

            Commentaire


            • #7
              c'est encore une petite base. Regardes un peu la configuration mysql de ton hébergement. Via phpMyAdmin, tu pourras voir les caches, les optimisations, etc...

              Le problème est forcément lié, puisque sur des serveurs normaux, la même requête sur des bases aussi grosses, voire davantage, ne provoque pas cet effet de bord.
              Pas de demande de support par MP.
              S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

              Commentaire


              • #8
                Merci pour le temps pasé sur mon problème.
                Je ne m'y connais pas bien en Mysql, mais voici les définitions de la base.
                mysq.pdf
                mysq2.pdf
                mysq3.pdf
                Baga
                http://www.afropages.fr La synthèse africaine.

                Commentaire


                • #9
                  ce ne sont pas les définitions de tables qui sont intéressantes, mais les variables du serveur, que tu trouves dans l'onglet variables de phpMyAdmin.
                  Entre autres les slow queries, la taille des buffers et du cache myisam, etc.
                  Pas de demande de support par MP.
                  S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

                  Commentaire


                  • #10
                    Les variables sont dans le fichier mysq2.pdf envoyé précédemment.
                    Baga
                    http://www.afropages.fr La synthèse africaine.

                    Commentaire


                    • #11
                      Bonjour,
                      Un petit UP sur ce sujet!
                      La base a été déplacée sur un autre serveur et le problème persiste.
                      Auriez-vous une autre solution à proposer?
                      Merci d'avance
                      Baga
                      http://www.afropages.fr La synthèse africaine.

                      Commentaire


                      • #12
                        Bonjour,
                        Je recherche une solution pour vérifier l'intégrité de la base.
                        En effet, je ne peux toujours pas accéder à la gestion des articles.
                        Baga
                        http://www.afropages.fr La synthèse africaine.

                        Commentaire


                        • #13
                          Via phpmyadmin, tu peux savoir si une table est crashée et la réparer.
                          Pas de demande de support par MP.
                          S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

                          Commentaire


                          • #14
                            Par Phpmyadmin, j'ai passé toutes les tables par la fonction "Réparer", mais le problème persiste.
                            Je me demande si le problème ne vient pas du composant com_content et qu'il faille le re-installer?
                            Baga
                            http://www.afropages.fr La synthèse africaine.

                            Commentaire


                            • #15
                              Bonjour,
                              J'ai résolu le problème.
                              Cause : taille de la table jos_content trop grande. (plus de 350 000 articles)
                              En effet, après avoir purgé la tables des articles les plus anciens, tout re-fonctionne normalement. (il n'y a lus que 230 000 articles).

                              Se pose alors le problèmes du traitement des archives et de la capacité de Joomla à gérer un grand nombre d'articles.
                              Quels sont les limitations quant à la taille de la table jod_content?
                              Existe t-il une solution pour gérer les articles dans une autre base?
                              Baga
                              http://www.afropages.fr La synthèse africaine.

                              Commentaire

                              Annonce

                              Réduire
                              1 sur 2 < >

                              C'est [Réglé] et on n'en parle plus ?

                              A quoi ça sert ?
                              La mention [Réglé] permet aux visiteurs d'identifier rapidement les messages qui ont trouvé une solution.

                              Merci donc d'utiliser cette fonctionnalité afin de faciliter la navigation et la recherche d'informations de tous sur le forum.

                              Si vous deviez oublier de porter cette mention, nous nous permettrons de le faire à votre place... mais seulement une fois
                              Comment ajouter la mention [Réglé] à votre discussion ?
                              1 - Aller sur votre discussion et éditer votre premier message :


                              2 - Cliquer sur la liste déroulante Préfixe.

                              3 - Choisir le préfixe [Réglé].


                              4 - Et voilà… votre discussion est désormais identifiée comme réglée.

                              2 sur 2 < >

                              Assistance au forum - Outil de publication d'infos de votre site

                              Compatibilité: PHP 4.1,PHP4, 5, 6DEV MySQL 3.2 - 5.5 MySQLi from 4.1 ( @ >=PHP 4.4.9)

                              Support Version de Joomla! : | J!3.0 | J!2.5.xx | J!1.7.xx | J!1.6.xx | J1.5.xx | J!1.0.xx |

                              Version française (FR) D'autres versions sont disponibles depuis la version originale de FPA

                              UTILISER À VOS PROPRES RISQUES :
                              L'exactitude et l'exhaustivité de ce script ainsi que la documentation ne sont pas garanties et aucune responsabilité ne sera acceptée pour tout dommage, questions ou confusion provoquée par l'utilisation de ce script.

                              Problèmes connus :
                              FPA n'est actuellement pas compatible avec des sites Joomla qui ont eu leur fichier configuration.php déplacé en dehors du répertoire public_html.

                              Installation :

                              1. Téléchargez l'archive souhaitée : http://afuj.github.io/FPA/

                              Archive zip : https://github.com/AFUJ/FPA/zipball/master

                              2. Décompressez le fichier de package téléchargé sur votre propre ordinateur (à l'aide de WinZip ou d'un outil de décompression natif).

                              3. Lisez le fichier LISEZMOI inclus pour toutes les notes de versions spécifiques.

                              4. LIRE le fichier de documentation inclus pour obtenir des instructions d'utilisation détaillées.

                              5. Téléchargez le script fpa-fr.php à la racine de votre site Joomla!. C'est l'endroit que vous avez installé Joomla et ce n'est pas la racine principale de votre serveur. Voir les exemples ci-dessous.

                              6. Exécutez le script via votre navigateur en tapant: http:// www. votresite .com/ fpa-fr.php
                              et remplacer www. votresite .com par votre nom de domaine


                              Exemples:
                              Joomla! est installé dans votre répertoire web et vous avez installé la version française du fichier FPA:
                              Télécharger le script fpa-fr.php dans: /public_html/
                              Pour executer le script: http://www..com/fpa-fr.php

                              Joomla! est installé dans un sous-répertoire nommé "cms" et vous avez installé la version française du fichier FPA:
                              Télécharger le script fpa-fr.php dans: /public_html/cms/
                              Pour executer le script: http://www..com/cms/fpa-fr.php

                              En raison de la nature très sensible de l'information affichée par le script FPA, il doit être retiré immédiatement du serveur après son utilisation.

                              Pour supprimer le script de votre site, utilisez le lien de script de suppression fourni en haut de la page du script. Si le lien de suppression échoue pour supprimer le script, utilisez votre programme FTP pour le supprimer manuellement ou changer le nom une fois que le script a généré les données du site et le message publié sur le forum. Si le script est toujours présent sur le site, il peut être utilisé pour recueillir suffisamment d'informations pour pirater votre site. Le retrait du script empêche des étrangers de l'utiliser pour jeter un oeil à la façon dont votre site est structuré et de détecter les défauts qui peuvent être utilisé à vos dépends.
                              Voir plus
                              Voir moins
                              Travaille ...
                              X