Restablecer el número de ‘siguiente ID de usuario’ de WordPress

2 minutos de lectura

He estado configurando un sitio web basado en WordPress con un sistema de membresía que utiliza la ID de usuario como número de membresía.

Durante las pruebas, hice muchos usuarios y luego los eliminé. Ahora que la prueba está completa, cuando creo un nuevo usuario, obtienen una ID de 25, 26, 27, etc.

Cómo puedo restablecer el número de ‘ID de usuario siguiente’ a 2 (o lo que sea) para que los nuevos usuarios se conviertan en 2, luego en 3, luego en 4, etc.

¿Es algo que necesito hacer en CPanel en phpMyAdmin/SQL?

  • Posible duplicado de esto.

    – forrestmid

    01/04/2017 a las 21:50

avatar de usuario
jqlee85

Sí, puedes hacerlo con phpMyAdmin o SQL.

Primero entra en el usuarios_wp tabla y elimine los usuarios que necesite.

Luego entra en el wp_usermeta table y elimine las metaentradas que correspondan a los ID de esos usuarios eliminados.

Entonces tienes que modificar el usuarios_wp tabla para restablecer su valor de incremento automático. Entonces puede hacerlo en phpMyAdmin, o usar SQL como este:

ALTER TABLE `wp_users` AUTO_INCREMENT={ID you want to be used next}

Entonces, si desea que el próximo usuario creado tenga el número de identificación 4, se vería así:

ALTER TABLE `wp_users` AUTO_INCREMENT=4

Si tratas de alterar wp_users con MySQL 5.7.5+ obtendrá el siguiente error:

Valor predeterminado no válido para ‘user_registered’

Esto se debe a que el NO_ZERO_DATE el modo era agregado como predeterminado en MySQL 5.7.5 cual prohíbe la fecha 0000-00-00. WordPress establece el valor predeterminado para user_registered para 0000-00-00 00:00:00por lo tanto este error.

No estoy seguro de cuál es la mejor solución, pero debido a que cambiar las ID de usuario es bastante complicado en primer lugar, esta fue mi solución rápida.

Consulté el valor predeterminado (sesión) sql_mode:

SELECT @@SESSION.sql_mode;

(para mí el 5.7.28 esto fue ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION)

quite NO_ZERO_IN_DATE y NO_ZERO_DATE de esto, y luego establecer sql_mode antes de modificar la tabla:

SET SESSION sql_mode="(mode string from above without NO_ZERO_DATE)";
ALTER TABLE `wp_users` AUTO_INCREMENT = 2;

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad