J3.x

J3.x: Nombres de usuarios duplicados pueden causar problema al actualizar

From Joomla! Documentation

Revision as of 17:41, 11 April 2020 by FuzzyBot (talk | contribs) (Updating to match new version of source page)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Other languages:
Deutsch • ‎English • ‎Nederlands • ‎Türkçe • ‎español • ‎français • ‎italiano • ‎Ελληνικά

En ciertos sitios web, actualizar a Joomla 3.9.16 provoca un error en la base de datos debido a nombres de usuarios duplicados. Si eso pasa, no entrar en pánico - la actualización ha sido mayormente completada sin problemas y está funcionando como de costumbre, el cambio restante de la base de datos puede realizarse después de seguir las instrucciones que figuran a continuación.

Errores reportados

Los usuarios reciben un error de actualización en relación con una consulta fallida de la base de datos debido a una clave duplicada en una tabla de su sitio web #__users al actualizar a Joomla 3.9.15 o posterior.

Joomla 3.9.16 Upgrade Error

Versiones afectadas

Información General

Esto sólo afecta a la(s) versión(ones) de Joomla!: 3.9.16

Cuál es la causa

El sitio web tiene más de un usuario en la #__users tabla con el mismo nombre de usuario, lo cual es una amenaza para la seguridad, ya que el dueño equivocado puede acceder a la la cuenta incorrecta.

Cómo solucionarlo

Es necesario revisar la #__users tabla en la base de datos y corregir todo nombre de usuario duplicado, ya sea removiendo cuentas viejas o cambiando los nombres de usuarios hasta que estos sean únicos. Una vez hecho esto, si ya se ha actualizado a la versión 3.9.16, ejecutar la herramienta de corrección del esquema de la base de datos para terminar la actualización (este paso no es necesario si esta revisión es hecha antes de la actualización).

Joomla no puede determinar automáticamente la acción correcta a tomar y como resultado, no puede realizar este paso por si mismo - tiene que ser corregido por el dueño del sitio.

El siguiente SQL Query puede ser ejecutado en la base de datos para ver cuales son los nombre de usuario duplicados:

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"