Dubbele gebruikersnamen veroorzaken updateprobleem
From Joomla! Documentation
Bij sommige websites zal het updaten naar Joomla 3.9.16 resulteren in een database foutmelding die veroorzaakt wordt door dubbele gebruikersnamen. Raak niet in paniek wanneer dit gebeurt - de upgrade is zonder problemen bijna afgerond en werkt zoals het hoort, de overgebleven database wijziging kan met de volgende instructie toegepast worden.
Gerapporteerde fouten
Gebruikers krijgen een update foutmelding met betrekking tot de database query vanwege een dubbele sleutel in de website #__users
tabel wanneer er een upgrade plaats vindt vanaf Joomla 3.9.15 of ouder.
Getroffen versies
Dit geldt alleen voor Joomla! versie(s): 3.9.16
Wat is de oorzaak
Je website heeft meer dan één gebruiker in de #__users
tabel met de zelfde gebruikersnaam, wat een veiligheidsprobleem is omdat het foutieve account door de verkeerder gebruiker kan benaderd worden.
Hoe op te lossen
Je zal de #__users
tabel in je database moeten herzien en elke dubbele gebruikersnaam moeten wijzigen door of oude gebruikers te verwijderen of hun gebruikersnaam te wijzigen totdat alle gebruikersnamen uniek zijn. Wanneer dit gereed is, en je hebt de upgrade naar 3.9.16 al uitgevoerd, kan je de databaseschema repareren starten om de upgrade te voltooien (deze stap is niet nodig als je dit probleem oplost voordat je de upgrade uitvoert).
Joomla kan niet automatisch vaststellen welke actie ondernomen moet worden en kan hierdoor deze stap niet voor je uitvoeren - je moet dit als website eigenaar zelf uitvoeren.
De volgende SQL query moet op je database uitgevoerd worden om te zien welke gebruikersnamen dubbel voorkomen. Vervang de plaatsvervanger #__
door het tabel-voorvoegsel van uw Joomla database voordat u het draait:
SELECT username FROM #__users GROUP BY username HAVING COUNT(*) > 1
Een mogelijke manier om dit probleem eenvoudiger op te lossen is alle gebruikers te verwijderen die de website nooit bezocht hebben. Dit moet echter met zorg gedaan worden en zorg dat er eerst een back-up van de tabel gemaakt wordt. Na het draaien van deze query kunt u opnieuw controleren hoeveel dubbele gebruikers u heeft.
DELETE FROM #__users WHERE lastvisitDate = "0000-00-00 00:00:00"