Vous n'êtes pas identifié(e).
13 février 2024 Sortie de Dotclear 2.29
Mon passage à dot2 ayant lamentablement foiré et ayant entraîné de gros soucis sur dot1, j'ai supprimé les tables, supprimé la bdd, créé une nouvelle bdd puis réinstallé dot1 sur un terrain sain. Tout est ok sauf lorsqu'on veut ajouter un commentaire sur le blog. Un message s'affiche: MySQL : 1062 - Duplicate entry '0' for key 1
Comment puis-je corriger ce problème?
Hors ligne
Je viens de tester qu'un billet est bien édité sur le blog. C'est ok. Par contre, dans admin, le billet m'indique 2463 commentaires (qui n'existent pas).
Hors ligne
Et le formulaire "ajouter un commentaire" sur le billet test est absent
Hors ligne
Pour le formulaire absent : tes commentaires sont bien déclarés ouverts ?
La documentation : http://doc.dotclear.net/2.0/fulltoc
Le module de recherche du forum : http://www.dotclear.net/forum/search.php ?
Hors ligne
Un message s'affiche: MySQL : 1062 - Duplicate entry '0' for key 1
J'ai eu ce problème il y a longtemps en changeant d'hébergeur. A l'époque, il y avait ici une discussion sur le sujet mais je n'ai pas retrouvé le fil !
De mémoire, vas dans ton interface PhpMyAdmin, clique sur dc_comment pour obtenir dans la partie droite la structure de la table. Sur la ligne du champ comment_id, au niveau de l'extra, vérifie que ce soit en "auto_increment" sinon modifies-le.
(Désolé si le vocabulaire n'est pas correcte, je n'y connais pas grand chose en MySQL)
J'ai souvenir qu'il n'y avait pas que cette table qui posait problème et que j'avais dû en modifier beaucoup d'autres en comparant avec les tables d'une autre installation.
Mes souvenirs s'arrêtent là, il y avait peut-être autre chose à faire mais je ne me rappelle rien d'autre. Peut-être que cela va raviver la mémoire d'autres contributeurs.
Hors ligne
Oui, il faut d'abord créer soi-même et nommer chez ton hébergeur la nouvelle base mysql avant de faire quoi que ce soit.
Et ne surtout pas supprimer l'ancienne base mysql de ton blog sous DC1.
L'installation automatique du blog sous DC2 créera les tables vides dans ta nouvelle base mysql, puis l'importation dans ton admin de DC2 te permettra de copier automatiquement le contenu des tables de ton ancienne base du blog sous DC1 vers la nouvelle base de ton blog sous DC2.
Si la migration de DC1 vers DC2 foire il faut recommencer la création puis la migration, et si tu ne veux pas créer encore une fois une nouvelle base mysql comme au stade zéro du haut de ma réponse ici, il faut vider les tables de ta nouvelle base n°2, puis les supprimer. La base n°2 créée par toi sera ainsi réutilisable par la procédure d'installation automatique de DC2 et d'importation des tables de ton mysql de ton blog sous DC1.
Si tu ne fais pas tout ceci, l'installation automatique s'arrêtera et te dira que tu as déjà installé DC2. Et là tu es alors bloqué et tu peux aller boire une mousse aussi longtemps que tu veux, rien n'avancera.
http://www.renovezmaintenant67.eu avec un blog DC2,
et http://www.hotchkiss.eu avec un blog DC2
Hors ligne
Avant d'aller fouiller du côté de vos réponses, je vous dis ce que je viens de faire ce matin. Je me suis dit qu'il s'agissait peut-être de fichiers corrompus lors du transfert. En comparant le dot vierge sur mon pc et celui du serveur, j'ai constaté une différence de taille des fichiers dans "écrire">help. Certains fichiers sur le serveur sont de taille inférieure à celle de l'original.
Par exemple:
help>de>category: dot1pc=2232 alors que dot1serveur=2179
idem pour entry, user et wiki
idem pour les fichiers de-utf8 et it
Si ces renseignements n'ont aucune importance, j'irai fouiller sur les pistes que vous me donnez.
Hors ligne
koz> sur page admin> configuration de dotclear>Permettre les commentaires>oui
Hors ligne
Voici où j'en suis:
Je suis allée sur phpmyadmin. Toutes les valeurs extra sont vides. La colonne existe bien mais rien n'est marqué dedans.
J'ai échangé les fichiers dont j'ai parlé plus haut. Aucun résultat.
Il me faut donc aller sur phpmyadmin mais là, il y a tant d'actions mystérieuses que je n'ose pas intervenir sans vos conseils.
Hors ligne
J'ai fait une capture d'écran:
Hors ligne
Sur ton screenshot je vois que tes tables ne sont pas vides et ni éliminées.
En bas de ce tableau tu as à cocher la case "Cocher tout". Sur la même ligne tu choisis à droite l'action "vider".
Ensuite une autre fenêtre s'affiche sur ton écran et tu choisis "oui" en vert.
Ensuite ta première fenêtre réapparait et là tu vois que tes tables sont vidées dans ton tableau qui est resté entier.
Puis tu refais "cocher tout" mais cette fois-ci tu choisis "supprimer" dans la case à droite.
Puis la nouvelle fenêtre s'affiche et tu choisis "oui" en vert.
Il reste alors 4 tables et ton tableau a considérablement diminué, il reste 4 tables. Mais ce n'est pas grave.
Ta procédure d'installation automatique de DC2 va tout de même marcher, et bien marcher.
Amuses-toi bien. Si je n'avais pas bidouillé des heures et des heures depuis presque 3 ans sur DC1, je n'y serai pas arrivé moi-même.
DC, c'est bien, très bien, mais ce n'est tout de même pas une Moulinex. Heureusement il y a la team et le forum. Des amis, quoi.
http://www.renovezmaintenant67.eu avec un blog DC2,
et http://www.hotchkiss.eu avec un blog DC2
Hors ligne
Merci Thomas. Là, mon problème n'est pas de passer à dc2 mais résoudre MySQL : 1062 - Duplicate entry '0' for key 1. Pour dc2, je vais laisser décanter puis je me lancerai.
Hors ligne
Salut Thilde,
Donc on est sur DC1. Je ne vois pas grand chose sur ta capture d'écran, mais ta table dc_comment me paraît bien grande (plus de champs que la normale).
Je suppose que la base est vierge. Si elle contient des données que tu veux garder, il faut sauvegarder au préalable, sinon essaie ceci :
Le plus simple est de la supprimer. Tu cliques donc dessus (comme tu l'as fait pour la capture d'écran) puis tu cliques sur "Supprimer" et tu confirmes.
Ensuite tu vas dans l'onglet "SQL" et tu fais un copier-coller de ça (pour recréer la table) :
CREATE TABLE `dc_comment` (
`comment_id` int(11) NOT NULL auto_increment,
`post_id` int(11) NOT NULL default '0',
`comment_dt` datetime default NULL,
`comment_upddt` datetime default NULL,
`comment_auteur` varchar(255) default NULL,
`comment_email` varchar(255) default NULL,
`comment_site` varchar(255) default NULL,
`comment_content` longtext,
`comment_ip` varchar(15) default NULL,
`comment_pub` int(1) default '0',
`comment_trackback` int(1) NOT NULL default '0',
PRIMARY KEY (`comment_id`),
KEY `fk_comment_post` (`post_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
Je suppose que ta base ne contient aucune donnée.
Hors ligne
PS : quand je dis qu'il faut supprimer, je parle uniquement de la table dc_comment bien sûr
Hors ligne
comme tu avais écris en #1 "Mon passage à dot2"
je croyais que c'était ton problème.
http://www.renovezmaintenant67.eu avec un blog DC2,
et http://www.hotchkiss.eu avec un blog DC2
Hors ligne
Ah ok ok ok. Je vais au ciné et je vois ça en rentrant. Merci!
Hors ligne
Dzana> J'ai supprimé dc_comment. J'ai exécuté la reqête que tu m'as fournie. Les commentaires sont redevenus opérationnels.
Par contre, j'ai perdu tous les commentaires du blog entier. J'ai donc fait un dump de restauration qui provoque le même avertissement: MySQL : 1062 - Duplicate entry '0' for key 1
On tient le bon bout. Je vais juste vider les tables en trop pour voir ce que ça donne.
Hors ligne
Tout est ok. J'ai modifié à la main comment_id. De bigint(20) je l'ai mis en int(11) et ainsi de suite (ccomme sur ton modèle)
J'ai vérifié sur le blog. L'accès à ajouter un commentaire est revenu.
Merci Dzana.
Hors ligne
Youloulou ! Thilde, ayé tu es une vraie geekette, tu fais des trucs en direct sur la base ! ;-)
La documentation : http://doc.dotclear.net/2.0/fulltoc
Le module de recherche du forum : http://www.dotclear.net/forum/search.php ?
Hors ligne
Koz> Yes!!! :-D
Hors ligne
Ah ben mince... J'ai touché à rien de rien cette fois-ci. Depuis la dernière fois, deux notes ont été éditées sans soucis, avec commentaires postés. Ce soir, je veux éditer une note et ce (gros mot censuré) de MySQL:1062-Duplicate entry '0' for key 1 qui revient (gros mot censuré). Le problème viendrait de Primary car les notes refusées affichent d'office 2534 commentaires et c'est comme par hasard la cardinalité de primary.
Sur phpmyadmin:
Index: Documentation Nom de l'index Type Cardinalité Action Champ
PRIMARY PRIMARY 2534 Modifier Supprimer comment_id
comment_auteur INDEX 281 Modifier Supprimer comment_auteur
comment_dt INDEX 2534 Modifier Supprimer comment_dt
comment_email INDEX 97 Modifier Supprimer comment_email
comment_id INDEX 2534 Modifier Supprimer comment_id
comment_ip INDEX 844 Modifier Supprimer comment_ip
comment_pub INDEX 1 Modifier Supprimer comment_pub
comment_site INDEX 105 Modifier Supprimer comment_site
comment_trackback INDEX 1 Modifier Supprimer comment_trackback
comment_upddt INDEX 2534 Modifier Supprimer comment_upddt
post_id INDEX 506 Modifier Supprimer post_id
fk_comment_post INDEX 506 Modifier Supprimer post_id
Les index suivants semblent équivalents, vous devriez en éliminer un. post_id, fk_comment_post
Les index suivants semblent équivalents, vous devriez en éliminer un. PRIMARY, comment_id
Dans un premier temps, j'ai viré primary et fk_comment_post mais ça n'a rien changé. J'ai donc recréé ces deux index à l'identique.
Je sèche...
Hors ligne
J'ai fait déjà.
Vérifier:
Table Op Msg_type Msg_text
lignevieblogue.dc_comment check status OK
Analyser:
Textes complets
Table Op Msg_type Msg_text
lignevieblogue.dc_comment analyze status Table is already up to date
Réparer:
Textes complets
Table Op Msg_type Msg_text
lignevieblogue.dc_comment repair status OK
Optimiser:
Textes complets
Table Op Msg_type Msg_text
lignevieblogue.dc_comment optimize status OK
Hors ligne
C'qui est incroyable, c'est que j'ai rien bidouillé. C'est arrivé comme ça, paf...
Hors ligne
Vous n'êtes pas identifié(e).