Uma maneira mais segura de excluir 30.000 usuários? Plugar? Mysql? O WPCLI? Erro no banco de dados…

Um usuário perguntou ?

Olá

Estou tentando remover 30.000 usuários de wordpress mas o banco de dados parece estranho, perto do acidente.

Quando uso um dos plugins WP, apenas algumas centenas de usuários podem ser removidos toda vez que eu clicar, então acho que o servidor tem um limite de tempo. Então, às vezes, quando reinicio, tenho um erro no banco de dados. É assustador tentar mais.

Tentar excluir com o usuário WP CLI wp excluir $ (lista de usuários wp –role = cliente –field = ID) não exclui nada e pendura todo o servidor, mesmo em um dedicado.

Você está ciente de que os bancos de dados WP podem ser facilmente quebrados? Qual é a melhor solução para remover 30.000 usuários?

Muito obrigado por sua ajuda.

(@rossmitchell)

2 anos, 11 meses atrás

Provavelmente tem uma lista de IDs de usuário que você deseja excluir? Ou o alcance de ID que você precisa atingir? Se você não tiver um ID, a próxima coisa que você faria é criar uma lista ou uma gama de IDs. Sugiro que você remova os usuários-alvo das tabelas “usuários” e “usermeta” usando SQL em phpmyadmin. Se precisar de ajuda com a SQL, entre em contato conosco o que você tem.

(@makeonlineshop)

2 anos, 11 meses atrás

Olá, obrigado por sua resposta, quero remover todos os usuários do WordPress que têm uma função cliente. Eles foram importados de outra loja, mas como 4000 desses e-mails saltam por aí, é melhor excluí-los todos do que tentar limpar a lista de usuários 1 a 1. Pode me dizer o que é o SQL para fazer isso? Obrigado de novo.

(@rossmitchell)

2 anos, 11 meses atrás

Primeiro, faça backup do seu banco de dados atual, por precaução. Certifique-se também de ter todos os dados necessários sobre os usos existentes para os usuários que você está excluindo, como endereços para comandos pendentes. Este SQL lhe dará uma lista de todos os IDs que você precisa:

Onde está

o prefixo de tabela para instalação. Mas pode ser mais fácil perguntar qual ID você quer manter, nesse caso você vai perguntar:
SELECT user_id FROM <PREFIX>_usermeta ONDE meta_key como "%_capabilities" e meta_value NÃO gosto de pedido "%customer%" por user_id asc
Esta é provavelmente uma lista muito boa.
SELECT user_id FROM <PREFIX>_usermeta WHERE meta_key like "%_capabilities" and meta_value like "%customer%" order by user_id asc

Exporte esta lista como CSV e importe-a em uma planilha, em seguida, use as funções da planilha para criar uma lista separada de ímula de IDs, por exemplo, SQL diz que a lista de “clientes” (11,12,13, 91, 92) Em seguida, use essas listas e como uma questão prática, você poderia tomar alguns para incluir 30.000 IDs e criar SQL como:

e

pode não ser prático dizer apenas 1000 de cada vez, nesse caso você terá instruções SQL suficientes para executar.
DELETE FROM <PREFIX>_usermeta WHERE user_id in (11,12,13,91,92)DELETE FROM <PREFIX>_users WHERE ID in (11,12,13,91,92)

Mas se a lista de IDs que você quer manter for curta (digamos que não haja clientes: (1,2,3,5,27,28,97)), então o SQL seria:

e

, claro, você só pode fazer isso se houver apenas uma lista de não clientes.
DELETE FROM <PREFIX>_usermeta WHERE user_id NOT in (1,2,3,5,27,28,97)DELETE FROM <PREFIX>_users WHERE ID NOT in (1,2,3,5,27,28,97)

Boa sorte.

Esta resposta foi modificada há 2 anos, há 11 meses.

(@makeonlineshop)

2 anos, 11 meses atrás

Olá, muito obrigado,

Então, se eu quiser fazer da maneira mais fácil e apenas manter 2 administradores e remover todos os outros usuários não importa qual seja o seu papel, use isso? (se meus 2 administradores tiverem IDs de usuário 1 e 2)


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

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

Mas quando todos os usuários não clientes são excluídos, como posso limitar todas as exclusões a 1000? Ou não há problema em apagar 30.000? Sem limite de tempo?

Deus o abençoe!

Esta resposta foi modificada há 2 anos, há 11 meses. Motivo: Mas quando todos os usuários não clientes são excluídos, como posso limitar todas as exclusões a 1000? Ou não há problema em apagar 30.000? Sem limite de tempo?

(@rossmitchell)

2 anos, 11 meses atrás

Sim, esse sql vai. Com phpmyadmin você provavelmente não vai chegar ao limite de tempo com esses comandos simples. Mas se isso acontecesse, esta sequência os dividiria em 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)

2 anos, 11 meses atrás

Obrigado! Obras!

Curiosamente, nenhum plugin poderia remover usuários sem erros, mas Mysql, que eu temia, era tão fácil e falho de usar!

Obrigado de novo!

(@dailybarid)

2 anos, 9 meses atrás

graças amor funciona 32000 usuários em segundos obrigado novamente

Resolveu seu problema?

0/0

Isto foi útil?

0 / 0

Deixe uma resposta 0

O seu endereço de email não será publicado. Campos obrigatórios são marcados *