J3.x:Doppelte Benutzernamen bereiten Probleme beim Update
From Joomla! Documentation
Bei einigen Webseiten die auf Joomla! 3.9.16 aktualisiert worden sind, kann es aufgrund von doppelten Benutzernamen zu einem Datenbankfehler kommen. Wenn das passiert, bitte nicht in Panik ausbrechen - das Update wurde fast vollständig durchgeführt und funktioniert wie gewohnt. Die fehlende Datenbankänderung kann gemäß den Anweisungen unten durchgeführt werden.
Berichtete Fehler
Benutzer erhalten einen Update-Fehler bezüglich einer fehlgeschlagenen Datenbankabfrage aufgrund eines doppelten Schlüssels in der Datenbank #__users
bei einem Upgrade von Joomla 3.9.15 oder älter.
Betroffene Versionen
Das betrifft nur die Joomla! Version(en): 3.9.16
Was ist der Grund
Deine Webseite hat mehr als einen Benutzer in der #__users
Tabelle mit demselben Benutzernamen, was insofern ein Sicherheitsproblem darstellt, als dass der falsche Kontoinhaber auf das falsche Konto zugreifen kann.
Wie der Fehler zu lösen ist
Man muss seine #__users
Tabelle in der Datenbank überprüfen und alle doppelten Benutzernamen korrigieren, indem man entweder alte Benutzerkonten entfernt oder den Benutzernamen ändert, bis alle Benutzernamen eindeutig sind. Wenn man bereits auf 3.9.16 upgegradet hat, sollte man das «Datenbank reparieren» Tool ausführen, um das Upgrade abzuschließen (dieser Schritt ist nicht nötig, wenn die Überprüfung vor dem Upgrade bereits gemacht wurde).
Joomla ist nicht in der Lage, die richtige Aktion automatisch zu bestimmen und kann daher diesen Schritt nicht durchführen - er muss vom Eigentümer der Website durchgeführt werden.
Die folgende SQL-Abfrage kann in der Datenbank ausgeführt werden, um zu sehen, welche Benutzernamen doppelt vorhanden sind:
SELECT username FROM #__users GROUP BY username HAVING COUNT(*) > 1
One possible way to make resolving this simpler might be to remove all users who have never visited the site. Though this should be done with care, and ensure to backup the table first. After running this query, you can check again how many duplicate users you have.
DELETE FROM #__users WHERE lastvisitDate = "0000-00-00 00:00:00"