Pregunta sobre Arreglando WordPress de Wordpress:

¿Una forma más segura de eliminar 30000 usuarios? ¿Enchufar? Mysql? WPCLI? Error de la base de datos…

Un usuario preguntó 👇

Hola,

Estoy tratando de eliminar 30000 usuarios de wordpress pero la base de datos parece extraña, cercana al accidente.

Cuando utilizo uno de los plugins de WP, solo se pueden eliminar unos pocos cientos de usuarios cada vez que hago clic, entonces supongo que el servidor tiene un límite de tiempo. Luego, a veces, cuando reinicio, obtengo un error de base de datos. Da miedo probar más.

Intentar eliminar con WP CLI user wp delete $ (lista de usuarios wp –role = customer –field = ID) no elimina nada y cuelga todo el servidor, incluso en uno dedicado.

¿Es consciente de que las bases de datos de WP pueden romperse fácilmente? ¿Cuál es la mejor solución para eliminar 30000 usuarios?

Muchas gracias por tu ayuda.

(@rossmitchell)

Hace 2 años, 11 meses

¿Probablemente tiene una lista de ID de usuario que desea eliminar? ¿O el rango de ID que necesita orientar? Si no tiene ID, lo siguiente que haría es crear una lista o rango de ID. Sugiera que elimine a los usuarios objetivo de las tablas «users» y «usermeta» utilizando SQL en phpmyadmin. Si necesita ayuda con SQL, comuníquese con nosotros lo que tiene.

(@makeonlineshop)

Hace 2 años, 11 meses

Hola, gracias por su respuesta, quiero eliminar todos los usuarios de WordPress que tienen un rol de Cliente. Fueron importados de otra tienda, pero como 4000 de estos correos electrónicos rebotan, es mejor eliminarlos todos que intentar borrar la lista de usuarios 1 por 1. ¿Puede decirme cuál es el SQL para hacer esto? ? Gracias de nuevo.

(@rossmitchell)

Hace 2 años, 11 meses

Primero, haga una copia de seguridad de su base de datos actual por si acaso. También asegúrese de tener todos los datos que necesita sobre los usos existentes para los usuarios que va a eliminar, como direcciones para los comandos pendientes. Este SQL le dará una lista de todas las ID que necesita:
SELECT user_id FROM <PREFIX>_usermeta WHERE meta_key like "%_capabilities" and meta_value like "%customer%" order by user_id asc
Donde es el prefijo de la tabla para la instalación. PERO puede ser más sencillo preguntar qué ID desea conservar, en cuyo caso preguntará:
SELECT user_id FROM <PREFIX>_usermeta WHERE meta_key like "%_capabilities" and meta_value NOT like "%customer%" order by user_id asc
Probablemente esta sea una lista muy buena.

Exporte esta lista como CSV e impórtela en una hoja de cálculo, luego use las funciones de la hoja de cálculo para crear una lista de ID separados por comas, por ejemplo, SQL dice la lista de «clientes» (11,12,13, 91, 92) Luego use estas listas y, como cuestión práctica, podría tomar algunas para incluir 30,000 ID y crear SQL como:
DELETE FROM <PREFIX>_usermeta WHERE user_id in (11,12,13,91,92)
y
DELETE FROM <PREFIX>_users WHERE ID in (11,12,13,91,92)
Puede que no sea práctico decir solo 1000 a la vez, en cuyo caso tendrá suficientes sentencias SQL para ejecutar.

PERO si la lista de ID que desea mantener es corta (digamos que no hay clientes: (1,2,3,5,27,28,97)), entonces el SQL sería:
DELETE FROM <PREFIX>_usermeta WHERE user_id NOT in (1,2,3,5,27,28,97)
y
DELETE FROM <PREFIX>_users WHERE ID NOT in (1,2,3,5,27,28,97)
Por supuesto, solo puede hacer esto si solo hay una lista de no clientes.

Buena suerte.

Esta respuesta fue modificada hace 2 años, 11 meses por.

(@makeonlineshop)

Hace 2 años, 11 meses

Hola, muchas gracias,

Entonces, si quiero hacerlo de la manera más fácil y solo mantener a 2 administradores y eliminar a todos los demás usuarios sin importar cuál sea su función, ¿usar esto? (si mis 2 administradores tienen ID de usuario 1 y 2)


DELETE FROM wp_usermeta WHERE user_id NOT in (1,2)

DELETE FROM wp_users WHERE ID NOT in (1,2)

Pero cuando se eliminan todos los usuarios que no son clientes, ¿cómo puedo limitar todas las eliminaciones a 1000? ¿O está bien simplemente eliminar 30000? ¿Sin límite de tiempo?

¡Salud!

Esta respuesta fue modificada hace 2 años, 11 meses por. Motivo: pero cuando se eliminan todos los usuarios que no son clientes, ¿cómo puedo limitar todas las eliminaciones a 1000? ¿O está bien simplemente eliminar 30000? ¿Sin límite de tiempo?

(@rossmitchell)

Hace 2 años, 11 meses

Sí, ese sql lo hará. Con phpmyadmin probablemente no alcanzará el límite de tiempo con estos simples comandos. PERO si lo hiciera, esta secuencia los dividiría en lotes.

DELETE FROM wp_usermeta WHERE user_id NOT in (1,2) and user_id < 1000
DELETE FROM wp_usermeta WHERE user_id NOT in (1,2) and user_id < 2000
DELETE FROM wp_usermeta WHERE user_id NOT in (1,2) and user_id < 3000

srl

(@makeonlineshop)

Hace 2 años, 11 meses

Gracias ! ¡Funciona!

Por extraño que parezca, ningún plugin pudo eliminar a los usuarios sin errores, ¡pero Mysql, que temía, era tan fácil y defectuoso de usar!

¡Gracias de nuevo!

(@dailybarid)

Hace 2 años, 9 meses

gracias cariño funciona 32000 usuarios en segundos gracias de nuevo

¿Solucionó tu problema??

0 / 0

Deja una respuesta 0

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *