Das leidige "duplicate entry '0' for key 'primary'"

  • Beim Installiern oder Updaten von Erweiterungen wird im Backend die o. g. Fehlermeldung geworfen. Habe es gerde wieder beim Installieren des Privacy-Checkbox-Plugins bekommen. Die jeweilge Erweiterung funktioniert aber (so wie BE und FE) fehlerlos.

    Habe hier mal die Suchfunktion bemüht, aber keinen zielführenden Hinweis gefunden.

    • "Datenbank reparieren" halt nichts geändert
    • "Erweiterungen überprüfen" bringt keine Ergebnisse
    • "Fehler berichten: Maximum" bringt im FE beim Phoca-Gallery-Tree-Modul die Warnung: "Only variables should be assigned by reference in [...]\modules\mod_phocagallery_tree\mod_phocagallery_tree.php on line 32"

    Hat jemand eine Idee, wo ich mit der Suche anfangen kann? Irgendwann fliegt mir Untätigkeit doch mal um die Ohren.


    Systeminfos:

    • >> Seite
    • Joomla 3.8.7
    • Datenbanktyp: mysql
      Datenbankversion 5.5.5-10.1.32-MariaDB
    • PHP-Version: 7.0.29
    • Template: JP-OnePage (Joomlaplates)


    ------------------------------------------------------------
    Gruß vom Jörg
    (Lehrer ist kein Beruf sondern eine Diagnose. oops )

  • Hallo Jörg,


    beziehe mich einstweilen "nur" auf den 2. Punkt.

    Generelle Frage: Hast Du nicht mysqli?


    Die "Notice" Phoca-Gallery-Tree-Modul: werde Jan kontakten.
    OT: Hat es einen Grund, dass Du bei PG Kategorien Ansicht, die Alteinstellungen nimmst?


    Melde mich, sobald ich Bescheid weiß ...


    Liebe Grüße
    Christine

  • Hallo,


    Zitat

    Die "Notice" Phoca-Gallery-Tree-Modul: werde Jan kontakten.

    ja, es ist eine Warnung, ich werde es ansehen, aber in diesem Fall hat es keine Einwirkung auf das Problem.


    Zitat

    Zusätzlich kannst mal den Debug-Modus anwerfen. Vielleicht wird dann eine ausführlichere Meldung bei Installation angezeigt, bspw. welche Tabelle.Ja, genau, wenn man Debug-Mode einschaltet, bekommt man detailerte Information über die Datenbanktabelle und über SQL Query, die die Probleme macht.


    Jan

  • Erst mal sorry für die späte Rückmeldung. "Irgendwer" hatte die Haken für E-Mail-Benachrichtigung aus meinem Kontrollzenrum gemopst ...

    Nun zu den Antworten:

    christine2 : Ja, ist echt mysql. Nie drauf geachtet, obwohl ich es besser wissen müsste.

    Re:Later : Thema kenne ich, hatte nur keine Verbindung zu meinem Problem gesehen. Arbeite ich mal ab.

    Jan : Danke für die Info.


    Ich habe für die Privacy-Checkbox sowieso gerade ein Backup der aktuellen Version in mein Uwamp gepackt (Fehler trat dort auch auf). Werde Eure Hinweise dort mal in Ruhe abarbeiten.

    ------------------------------------------------------------
    Gruß vom Jörg
    (Lehrer ist kein Beruf sondern eine Diagnose. oops )

  • Hallo Jörg,

    christine2 : Ja, ist echt mysql. Nie drauf geachtet, obwohl ich es besser wissen müsste.

    T'schuldige, da war ich zu vorlaut. Wenn ich "nur" mysql sehe, dann erinnere ich mich gleich an Threads, wo User wirklich "nur" mysql statt mysyqli (beim Server) verwenden.


    Hab bei mir nachgeschaut. Ist genau wie bei Dir. Also wenn mysqli bei: System > Konfiguration > Server steht, dann ist es ja gut :)


    Liebe Grüße
    Christine

  • Ich habe den Debugmodus mal aktiviert und (willkürlich) drei Pugins installiert, alle über "Paketdatei hochladen". Mit völlig unterschiedlichen Resultaten.

    1. Plugin:

    AIB - Author Info Box (pkg_authorinfobox_v3.1.4)

    => Plugin wurde nicht installiert und Fehlermeldung unten im Spoiler.

    2. Plugin:

    Quick Note (plg_quicknote)

    => Plugin ohne Fehlermeldung installiert.

    3. Plugin:

    Estimated Reading Time (plg_readingtime_3.5.1)

    => Plugin wurde korrekt installiert aber mit Fehlermeldung unten im Spoiler.


    In beiden Fällen mit Fehlermeldung ist diese identisch (hoffe, ist lesbar):

    Die Joomla!-Debug-Konsole, die sonst immer sichtbar ist, wurde unter der Fehlermeldung nicht angezeigt.

    Damit kann ich über eine evtl. kaputte Tabelle nichts vermelden.

    ------------------------------------------------------------
    Gruß vom Jörg
    (Lehrer ist kein Beruf sondern eine Diagnose. oops )

  • Die Joomla!-Debug-Konsole, die sonst immer sichtbar ist, wurde unter der Fehlermeldung nicht angezeigt.

    Bist ja auf UWamp. Kopiere das Logs-Verzeichnis (=sichern), falls was Wichtiges drin ist. Bleib im Debug-Modus. Geh schon mal in die Installationsansicht. In einem weiteren Tab öffne das Plugin "System - Debug". Aktiviere im dritten Reiter alle drei Einstellungen und speichere Plugin. Mach dann sofort die Installation.

    Mach danach möglichst wenig mit der Seite. Im Logs-Verzeichnis sollten jetzt mehrere Dateien sein. PHP-Dateien, sowie SQL-Dateien. Hänge die gezippt deinem nächsten Post an.

    Damit kann ich über eine evtl. kaputte Tabelle nichts vermelden.

    Trotzdem scheint sich in der Datenbank eine Tabelle zu befinden, die in der ID-Spalte eine 0 hat, was im Normalfall nicht korrekt ist. Prüfe die Tabelle #__extensions sowie #__assets dahingehend. Prüfe dabei auch, ob die Spalte im View "Struktur" ein AUTO_INCREMENT hat. Meist ist das die Spalte "id". Muss aber nicht immer der Fall sein.

  • [...] Im Logs-Verzeichnis sollten jetzt mehrere Dateien sein. [...]

    Ich glaub, mich laust der Affe. Alles nach Anweisung gemacht:

    • Konfig. > System > Fehlersuche > System (und auch Sprache) debuggen war ein & gespeichert
      (Debug-Konsole wurde auch angezeigt)
    • Plugin System-Debug angepasst & gespeichert
    • Plugin "Readingtime" aus Paketdatei installiert und Fehler 1062 gefangen

    In /logs wurde genau nichts geschrieben, weder in die vorhandenen Dateien error.php uder joomla_update.php. Noch zusätzliche Dateien angelegt. Laut Systeminfo ist /logs beschreibbar. Hab ich was vergessen?

    Ich glaube, ich probiere es nochmal mit der Online-Version. Dort schreibt es nämlich (habe gerade meine beiden fehlerhaften Login-Versuche nach dem Backup dort gelesen). Komme aber erst am WE dazu. Mache vorher nochmal ein Backup.

    Prüfe die Tabelle #__extensions sowie #__assets

    In beiden Tabellen ist der primary-key mit AUTO_INCREMENT und enthält keine 0.

    Erst mal Dank für die Mithilfe.

    ------------------------------------------------------------
    Gruß vom Jörg
    (Lehrer ist kein Beruf sondern eine Diagnose. oops )

  • Akeeba ist nicht im Einsatz. In /administrator gibt es kein /logs. Nur noch /administrator/components/com_jdownloads/views.

    Da ist auch nix.

    Ich versuche nach dem Backup mal die Online-Version Deines Vorschlages.

    ------------------------------------------------------------
    Gruß vom Jörg
    (Lehrer ist kein Beruf sondern eine Diagnose. oops )

  • Moin, irgendwo her muss der Fehler mit auto_increment ja kommen, vermutlich von einem fehlerhaften Export mit einem nachfolgenden Import in phpMyAdmin. Dort hat man, je nach Konfiguration, die Möglichkeit, die auto_increments zu übernehmen (sprich: anzuhaken). Also evtl mal prüfen, ob die lokale Installation denselben Fehler aufweist. Wenn nicht, korrekt exportieren, und online importieren. Wenn ja, evtl ein Backup wiederherstellen, und sich dort die DB herausfischen. Macht mehr Sinn, als da nun klein für klein "herumzustochern" thinking.

  • Hänge die gezippt deinem nächsten Post an.

    Ist hiermit gemacht. Online hat Joomla Dateien ins Log-Verzeichnis geschrieben.

    Ich habe drei Plugins installiert.

    1. Author info Box (Fehler 1062)
    2. Quick Note (keine Fehlermeldung)
    3. Readingtime (Fehler 1062)

    Alle drei waren aber danach in der Plugin-Liste vorhanden und konnten wieder deinstalliert werden.

    Vorher hatte ich es noch zweimal im Uwamp probiert. Die Fehler 1062 treten recht willkürlich und nicht unbedingt reproduzierbar auf. In drei Versuchen ließ sich nur Quick Note dreimal ohne Fehler installieren. Readingtime warf den Fehler immer, Author Info Box nur einmal.

    Nach der Protokollierung online habe ich noch das angebotene Update des JCE gemacht. Fehler 1062, aber im Control Panel wird er (korrekt) als JCE 2.6.29 ausgewiesen.

    Vielleicht findest Du eine Spur.


    j!-n : Der Fehler tritt leider sehr unregelmäßig auf. Lokal im Uwamp und online. Ja, habe bei einer frühen 3-er Version mal in einem damaligen Backup hier lokal das Template gewechselt und dann wieder "hochgeschoben". Export/Import der DB immer mit den Standardeinstellungen in PHPMyAdmin. Wann der Fehler erstmalig auftrat weiß ich nicht mehr, Installationen und Updates waren ja letztendlich immer erfolgreich. Mit Backups komme ich da IMHO nicht weiter.

    Blöd das ist.

    Ich hoffe (ehrlich gesagt), mich im worst case noch bis J4 zu retten. Dann will ich die Seite sowieso mal komplett neu aufsetzen. Bei der Miniseite gehen die paar Inhalte auch mit C&P.

    Aber vielleicht haben wir vorher schon Erfolg.

  • Zitat


    CRITICAL xxx error Uncaught \Throwable of type JDatabaseExceptionExecuting thrown. Stack trace: #0 xxx/plugins/extension/joomla/joomla.php(72): JDatabaseDriverMysqli->execute()

    = beim Versuch einen neuen Update-Server in die DB einzutragen.


    Überprüfe mal die Tabelle #__update_sites deiner Datenbank. Da scheint es drauf hinaus zu laufen. Ist Spalte update_site_id AUTO_INCREMENT? Und gibt es schon Einträge mit update_site_id = 0 ?


    Überprüfe die Indices der Tabelle (siehe Bild, wo es korrekt ist):



    Es könnte erklären,

    dass Plugins trotzdem installierbar etc.

    dass nur bei bestimmten Installationen (wo Eintragungen von Updateservern in DB passieren)

  • Ist Spalte update_site_id AUTO_INCREMENT?

    Sieht nicht so aus. Habe allerdings die Stelle, die Du im Screenshot angegeben hast.

    Ich hoffe, hab den richten SQL-Befehl:

    SHOW FIELDS FROM iygv3_update_sites;

    Und gibt es schon Einträge mit update_site_id = 0 ?

    Ja.


    ------------------------------------------------------------
    Gruß vom Jörg
    (Lehrer ist kein Beruf sondern eine Diagnose. oops )

  • Backup der DB erstellen.


    Gehdann in der Tabelle #__update_sites in den Reiter/Tabulator "Struktur".


    Klicke den Editorbutton (bei mir ein Bleistift) der Feld-Zeile "update_site_id".

    Wähle das Häkchenfeld "A_I" an. Vielleicht bei dir auch irgendwo was, wo explizit AUTO_INCREMENT zur Auswahl steht. Vielleicht Drop Down?

    Nach dem Speichern solltest du dann in Spalte "Extras" ein AUTO_INCREMENT sehen.




    Dann wechseln in den Tabulator "Anzeigen". Halt da, wo man die Datensätze alle sieht. Lösche den mit ID=0.


    Geh ins Backend > Erweiterungen > Aktualisierungsquellen:


    Lösche alle angezeigten Aktualisierungsquellen. Häkchen vor alle und Löschen-Button oben. Nicht alle werden dabei gelöscht. Bekommst du eine rote Meldung. Ist OK so.


    Klicke dann den Button "Wiederherstellen".


    Kontrollblick noch mal in die Datenbanktabelle kann nicht schaden. Denke aber, danach sollte alles wieder OK sein.