Fiz besteira no MySQL, como dar rollback?

2,863 views
Skip to first unread message

Pedro Bernardes

unread,
Jun 23, 2010, 2:08:59 PM6/23/10
to list...@googlegroups.com
não sei direito como, mas consegui mudar o nome de todos os clientes da base para o mesmo nome! Ou seja, fiz merda!

Como eu faço pra dar rollback nisso? É possível? Eu tenho um backup relativamente recente, ou seja, nem tudo está perdido, mas mesmo assim...

Marlon Paulo

unread,
Jun 23, 2010, 2:14:02 PM6/23/10
to list...@googlegroups.com
no minimo fez um update sem usar a clausula WHERE.
Acho q agora só com backup.

2010/6/23 Pedro Bernardes <fedo...@gmail.com>
não sei direito como, mas consegui mudar o nome de todos os clientes da base para o mesmo nome! Ou seja, fiz merda!

Como eu faço pra dar rollback nisso? É possível? Eu tenho um backup relativamente recente, ou seja, nem tudo está perdido, mas mesmo assim...

--
============================================================
LEIAM SEMPRE AS REGRAS DA LISTA:
http://groups.google.com.br/group/listaphp/web/regras-da-lista-php
--
LISTA PHP > http://groups.google.com.br/group/listaphp
--
REVISTA PHP > http://www.revistaphp.com.br
--
AJAX-BRASIL > http://groups.google.com/group/ajax-brasil
--
PYTHON-GOOGLE > http://groups.google.com.br/group/python-google
--
DOTNET-BRASIL > http://groups.google.com.br/group/dotnet_br
============================================================



--
Marlon Paulo Parizzotto
Analista de Sistemas
B3informatica - PTI
Parque Tecnologico de Itaipu

Zaedy Sayão

unread,
Jun 23, 2010, 2:14:19 PM6/23/10
to list...@googlegroups.com
Provalvemente vc deu um update nome sem where, ai foi ba tabela inteira...hehe

Verifica se o seu servidor não tem um backup recente mesmo. Geralmente trabalham com backup diário.

BTW, trabalhe sempre local ou com uma base replicada cara.

[]'s

On Wed, Jun 23, 2010 at 15:08, Pedro Bernardes <fedo...@gmail.com> wrote:
não sei direito como, mas consegui mudar o nome de todos os clientes da base para o mesmo nome! Ou seja, fiz merda!

Como eu faço pra dar rollback nisso? É possível? Eu tenho um backup relativamente recente, ou seja, nem tudo está perdido, mas mesmo assim...

--
============================================================
LEIAM SEMPRE AS REGRAS DA LISTA:
http://groups.google.com.br/group/listaphp/web/regras-da-lista-php
--
LISTA PHP > http://groups.google.com.br/group/listaphp
--
REVISTA PHP > http://www.revistaphp.com.br
--
AJAX-BRASIL > http://groups.google.com/group/ajax-brasil
--
PYTHON-GOOGLE > http://groups.google.com.br/group/python-google
--
DOTNET-BRASIL > http://groups.google.com.br/group/dotnet_br
============================================================



--
Zaedy Dantas Sayão
Graduando em Ciência da Computação DCC/UFRJ
http://www.manufato.com.br/
MSN: zaedy...@hotmail.com

Mauricio Merlin

unread,
Jun 23, 2010, 2:17:12 PM6/23/10
to list...@googlegroups.com
não tem rollback, rollback somente em uma transação... só backup mesmo.



Em 23/06/2010 15:14, Zaedy Sayão < zaed...@gmail.com > escreveu:
Provalvemente vc deu um update nome sem where, ai foi ba tabela inteira...hehe

Verifica se o seu servidor não tem um backup recente mesmo. Geralmente trabalham com backup diário.

BTW, trabalhe sempre local ou com uma base replicada cara.

[]'s

On Wed, Jun 23, 2010 at 15:08, Pedro Bernardes <fedo...@gmail.com> wrote:
não sei direito como, mas consegui mudar o nome de todos os clientes da base para o mesmo nome! Ou seja, fiz merda!
Como eu faço pra dar rollback nisso? É possível? Eu tenho um backup relativamente recente, ou seja, nem tudo está perdido, mas mesmo assim...

 

--
============================================================
LEIAM SEMPRE AS REGRAS DA LISTA:
http://groups.google.com.br/group/listaphp/web/regras-da-lista-php
--
LISTA PHP > http://groups.google.com.br/group/listaphp
--
REVISTA PHP > http://www.revistaphp.com.br
--
AJAX-BRASIL > http://groups.google.com/group/ajax-brasil
--
PYTHON-GOOGLE > http://groups.google.com.br/group/python-google
--
DOTNET-BRASIL > h ttp://groups.google.com.br/group/dotnet_br
============================================================

Felipe Cardoso Martins

unread,
Jun 23, 2010, 2:20:47 PM6/23/10
to list...@googlegroups.com
Restaura o backup em uma segunda base de dados, e faz update
reconstituindo somente o campo cliente... exemplo:

UPDATE base_producao.cliente, base_backup.cliente
SET base_producao.cliente.nome = base_backup.cliente.nome
WHERE base_producao.cliente.id = base_backup.cliente.id

easy... :D

e mais atenção na próxima!

--
Abraço,

Felipe Cardoso Martins
felipe.card...@gmail.com
http://www.linkedin.com/in/felipecardosomartins

“O segredo do prazer no trabalho pode ser resumido em uma palavra: excelência.
Saber como fazer bem algo é ter prazer nisso. ”
Pearl Buck

Erick Couto

unread,
Jun 23, 2010, 2:26:40 PM6/23/10
to list...@googlegroups.com
cara, dá uma pesquisada sobre log binário no mysql.. acho que existe uma luz por ali.. esse arquivo é
responsável por manter servidores sincronizados em operações de cluster.. acho que ele mantem histórico de valores.

2010/6/23 Pedro Bernardes <fedo...@gmail.com>
não sei direito como, mas consegui mudar o nome de todos os clientes da base para o mesmo nome! Ou seja, fiz merda!

Como eu faço pra dar rollback nisso? É possível? Eu tenho um backup relativamente recente, ou seja, nem tudo está perdido, mas mesmo assim...

--

Thiago Santos

unread,
Jun 23, 2010, 2:30:17 PM6/23/10
to list...@googlegroups.com
Perde tempo não, joga o backup de volta antes que de uma M.... maior!



--
Thiago Santos
+55 21 7172-1630

Zaedy Sayão

unread,
Jun 23, 2010, 2:30:23 PM6/23/10
to list...@googlegroups.com
Mais fácil fazer isso mesmo.

Agora pode dar algum problema caso tenha algum novo cadastro, vai ficar com o nome que você colocou agora, mas pelo menos o rombo vai ser bem pequeno....

[]'s

Pedro Bernardes

unread,
Jun 23, 2010, 3:12:12 PM6/23/10
to list...@googlegroups.com
E ae galera!

Obrigado pelas respostas, fui no popular mesmo, com um backup
Eu tinha um backup de 10 dias atrás, então só perdi uns 30 cadastros de clientes, felizmente todos eles tem um site, ou e-mail, então não foi tão grave assim =]

Eu queria um ctrl+z que resolvesse tudo pra mim, mas não rolou hahaha

btw, alguém sabe como fazer um backup via php? Pra um leigo clicar em um botão, obter um arquivo e poder subir a base de novo um dia? Abraços e obrigado novamente!

E pra quem estiver curioso, não foi um update sem where, no meio dos ctrl+c da vida, fiz um sql injection em mim mesmo hahahaha ó ainda não sei qual.

Suissa

unread,
Jun 23, 2010, 3:42:48 PM6/23/10
to list...@googlegroups.com

Bruno Augusto

unread,
Jun 23, 2010, 2:19:36 PM6/23/10
to list...@googlegroups.com
Devo ter feito mesmo o UPDATE sem a clausura WHERE, eu sei pq eu ja fiz isso uma vez. A minha sorte q os dados q continham no BD eram só para testes e não dados do sistema.

2010/6/23 Zaedy Sayão <zaed...@gmail.com>

Pedro Bernardes

unread,
Jun 23, 2010, 4:38:38 PM6/23/10
to list...@googlegroups.com
2010/6/23 Suissa <jnasc...@gmail.com>
http://lmgtfy.com/?q=mysql+backup+via+php
 
Olha! Google, não conhecia! Obrigado pela dica.

Mas, de qualquer forma, acho que você não sabe direito pra que serve isso aqui, deixe-me te apresentar o conceito de lista de e-mails.
Numa lista de e-mails, as pessoas não precisam só colocar dúvidas catastróficas improcuráveis, podemos também pedir sugestões, sabia? Talvez ainda esteja nebuloso pra você, então deixe-me te mostrar usando como exemplo a minha pergunta.

Quando eu pergunto "Alguém sabe como fazer backup de MySQL via php", eu espero sugestões, é o tipo de coisa que parece que já tem pronto, não só tem pronto, como tem muitos, e muitos ruins. As vezes alguém conhece um esquema bom que é só baixar, plugar e pronto. Ai o cara gasta 10 segundos escrevendo algo como "Procura pelo phpMysqlBackup, eu uso e é muito bom" e, em troca, quando o cara precisar de alguma sugestão, eu gasto 10 segundos escrevendo pra ele. Além disso, pessoas que não sabem e não precisam disso agora, se beneficiarão da discussão.

Eu procurei no google, inclusive estava procurando quando resolvi perguntar na lista, por que estava achando muita coisa 'braçal' e parecia que não era pra ser uma coisa tão difícil de fazer.

Espero que você tenha entendido o conceito de lista de e-mails e possa fazer melhor uso dela no futuro =]

Pedro Bernardes

unread,
Jun 23, 2010, 4:39:55 PM6/23/10
to list...@googlegroups.com
Ah, e sério, foi mal mesmo ao resto da lista por 'começar birrinha' e mandar esse spam, mas é a terceira vez que ele responde assim a um pedido de sugestão.

Obrigado a todas as respostas e desculpem de novo pela briguinha.

Suissa

unread,
Jun 23, 2010, 4:48:28 PM6/23/10
to list...@googlegroups.com
E custa vc procurar alguma coisa antes no Google? Pq td mundo quer as paradas de mão beijada. Ta loco!

2010/6/23 Pedro Bernardes <fedo...@gmail.com>
--

Suissa

unread,
Jun 23, 2010, 4:51:17 PM6/23/10
to list...@googlegroups.com

Felipe Cardoso Martins

unread,
Jun 23, 2010, 4:56:33 PM6/23/10
to list...@googlegroups.com
Na boa... essa lista ultimamente está meio palhaçada. Adeus!

--

Bruno Gross

unread,
Jun 23, 2010, 5:21:38 PM6/23/10
to list...@googlegroups.com
Suissa, segura a onda...

--
Sent from my mobile device

Visite: www.UpaLele.com

att.
Bruno Gross
Celular: (21) 78545483
Rádio ID: 83*39379

Suissa

unread,
Jun 23, 2010, 5:24:02 PM6/23/10
to list...@googlegroups.com
Velho se as 3 priemiras buscas do google não resolverem o problema dele acho q algo está errado no mundo!

Olha só:

Mais mastigado que isso só se o cara liberar o ftp e alguem fazer para ele, na moral mesmo.

Antonio Antunes

unread,
Jun 23, 2010, 4:42:40 PM6/23/10
to list...@googlegroups.com
Cara, geralmente eu fazia um script php que chamava o mysqldump e
guardava o arquivo, e mandava por email. Inclusive era um script
pronto, achei na net, rodava em cron.

Mas um que seja totalmente online... do tipo clica e baixa... eu sei
que no phpMyAdmin tem, dá pra vc dar uma olhada la no fonte... Mas
acho que daí nao daria pra fazer com o mysqldump, pq teria q aguardar
o retorno dele e dependendo do banco isso pode demorar...

Pedro Bernardes

unread,
Jun 23, 2010, 7:52:29 PM6/23/10
to list...@googlegroups.com
Suissa, pára cara.
Isso é chato, só isso. É a terceira vez que você manda uma dessa pra mim, nas outras duas eu fiquei de boa, mas encheu o saco, fizeram isso com você e você quer descontar?
Minha pergunta foi relevante, eu não to aqui perguntando alguma coisa babaca do tipo "comofas uma arrai//?".

Você quis fazer graça, mas fez errado. Ademais, não vou ficar botando lenha na fogueira por que você simplesmente não leu o que eu escrevi (Leia abaixo) e ninguém nessa lista é obrigado a ficar aturando barraco.

Desculpa galera, prometo que esse assunto morreu.

2010/6/23 Suissa <jnasc...@gmail.com>

Velho se as 3 priemiras buscas do google não resolverem o problema dele acho q algo está errado no mundo!

Olha só:

Mais mastigado que isso só se o cara liberar o ftp e alguem fazer para ele, na moral mesmo.
 
>>> 2010/6/23 Pedro Bernardes <fedo...@gmail.com>

>>>> Eu procurei no google, inclusive estava procurando quando resolvi
>>>> perguntar na lista, por que estava achando muita coisa 'braçal' e
>>>> parecia
>>>> que não era pra ser uma coisa tão difícil de fazer.
 
>> 2010/6/23 Suissa <jnasc...@gmail.com>

>>>
>>> E custa vc procurar alguma coisa antes no Google? Pq td mundo quer as
>>> paradas de mão beijada. Ta loco!

>>> 2010/6/23 Pedro Bernardes <fedo...@gmail.com>

Pedro Bernardes

unread,
Jun 23, 2010, 7:56:13 PM6/23/10
to list...@googlegroups.com
Em 23 de junho de 2010 21:42, Antonio Antunes <ikki...@gmail.com> escreveu:
Cara, geralmente eu fazia um script php que chamava o mysqldump e
guardava o arquivo, e mandava por email. Inclusive era um script
pronto, achei na net, rodava em cron.

Mas um que seja totalmente online... do tipo clica e baixa... eu sei
que no phpMyAdmin tem, dá pra vc dar uma olhada la no fonte... Mas
acho que daí nao daria pra fazer com o mysqldump, pq teria q aguardar
o retorno dele e dependendo do banco isso pode demorar...

Então, minha motivação vem do backup feito pelo MySQL Administrator saca? Clica com um botão e salva =P Era só conseguir fazer alguma coisa do tipo remotamente. Procurei no google por coisas assim direto no mysql também mas não achei. De qualquer jeito, valeu, coloco uma solução sussa se eu achar!

Suissa

unread,
Jun 23, 2010, 8:25:10 PM6/23/10
to list...@googlegroups.com
Cara se eh 3ra q mando pa vc de certo pq vc soh faz esse tipinho de pergunta, eu mal lembro o nome da geral aqui só qm tenho no gtalk mesmo. Pode ter certeza que não é pessoal e se mais alguém fizer esse tipinho de pergunta eu tb responderia dessa forma. Então aprende logo a pesquisar q tu para de receber resposta assim!

Eu nem ia responder, mas queria esclarecer que não é nada pessoal!

E mandei aquela pesquisa pq um broder brincou com esse tópico no gtalk e não me aguentei dsahudhuashudhuashudhuashu

2010/6/23 Pedro Bernardes <fedo...@gmail.com>
--

Google

unread,
Jun 23, 2010, 9:17:00 PM6/23/10
to list...@googlegroups.com
Pedro to junto com você, otimas palavras.

As vezes precisamos ter um pouco de bom senso nas respostas.
Um outro amigo respondeu que a lista está uma palhaçada ultimamente. e concordo com ele tambem.

ta dificil hein pessoal, vamos parar de programar um pouco e beber com os amigos, fazer mais sexo. hehehe

Sds
Julio Fagundes

Pedro Bernardes escreveu:

Google

unread,
Jun 23, 2010, 9:21:15 PM6/23/10
to list...@googlegroups.com
Interessante, não conhecia esse "INTO OUTFILE".

Sds
Julio Fagundes

Renato de Freitas Freire escreveu:
A melhor maneira de fazer backup do mysql é via mysqldump mesmo..
é o mais confiável, mais rápido e mais integro.

Mas tem essa opção:

<?php
include 'config.php';
include 'opendb.php';

$tableName  = 'mypet';
$backupFile = 'backup/mypet.sql';
$query      = "SELECT * INTO OUTFILE '$backupFile' FROM $tableName";
$result = mysql_query($query);


include 'closedb.php';
?>

Pra voltar esse backup, usa o LOAD DATA INFILE: 

<?php
include 'config.php';
include 'opendb.php';

$tableName  = 'mypet';
$backupFile = 'mypet.sql';
$query      = "LOAD DATA INFILE 'backupFile' INTO TABLE $tableName";
$result = mysql_query($query);


include 'closedb.php';
?>


Veja que por ai você faz backup de tabela por tabela... 
Pelo mysqldump, vc pode fazer tanto da base toda quanto de cada tabela...

Se tiver acesso ao shell pelo php:

<?php
include 'config.php';
include 'opendb.php';

$backupFile = $dbname . date("Y-m-d-H-i-s") . '.gz';
$command = "mysqldump --opt -h $dbhost -u $dbuser -p $dbpass $dbname | gzip > $backupFile";
system($command);

include 'closedb.php';
?>

Ou ainda tem opção de fazer o backup pelo phpMyAdmin...
Ou por outra ferramenta para administração do mysql...
Pra windows e mac tem o navicat.. muito bom...



Se seu servidor for linux pode user o crontab para realizar backups automaticos..
se for windows, pode usar o agendador de tarefas...

é só fazer um script e adicionar ou no crontab ou no agendador...

--
Renato de Freitas Freire
ren...@morfer.org


2010/6/23 Pedro Bernardes <fedo...@gmail.com>

Pedro Bernardes

unread,
Jun 23, 2010, 9:26:22 PM6/23/10
to list...@googlegroups.com
Suissa, desculpe, eu sou iniciante, tenho menos de um ano de desenvolvimento web. Mas pra mim é no mínimo imprudente colocar a segurança de uma base de dados de 5000 clientes (eu sei que é pouco, mas é o suficiente pra dar dor de cabeça) na mão de três codigozécos que eu achei no google e me pareceram braçais e sujeitos a falhas, além de parecer bobo, sendo que no MySQL Administrator (Que é open) você faz backup clicando com um botão. Se isso é noob demais pra você, mil perdões, um dia eu chego lá.

Quanto a pesquisar no google, os resultados que eu obtive foram os mesmos que os seus.

Então galera, essa do mysqldump parece a melhor mesmo. Se pá eu faço o esquema de mandar por e-mail, ou algo assim. De qualquer jeito vou ler documentações do MySQL / Administrator da vida e ver se tem alguma solução digna de uma linha =P

Valeu!

Suissa

unread,
Jun 23, 2010, 9:38:35 PM6/23/10
to list...@googlegroups.com
Claro q eh noob demais se tu pediu como fazer em php, na minha cabeça foi q vc ja havia tentado as coisas mais simples, porem os iniciantes teimam em procurar o mais dificil. Cara com o manual do mysql e o Google tu faz milagre, na boa. Cara ia escrever tanta coisa agora, mas em respeito ao Bruno (Gross) q eh broder vou calar-me. =x

ps: eu não deixaria a minha base de 5mil clientes sem backup ehhehehe


2010/6/23 Pedro Bernardes <fedo...@gmail.com>

--

Luiz Escobar

unread,
Jun 23, 2010, 10:09:19 PM6/23/10
to list...@googlegroups.com

�� Puta merda que gente eXtressada.....

�� Nossa uma simples pergunta vira flame aqui... �ta t�o PHod@ fica apagando isso que �tive responder, vamos�acalmar�os�animos, a fazer o seguinte....

�� ALLguem pergunta, vc sabe ? ent�o se QUIZER responde, vc N�O sabe, n�o responde, N�O gostou, N�O responde, N�O ta com tempo, n�o responde, n�o quer responder, n�o responde, �quem perguntou, se n�o teve resposta, pode pergunta +1x, sem cobran�a de resposta, pq afinal�ningu�m�� obrigado a responder, e talvez quem viu n�o sabe mesmo responder, ent�o vamos respeitar.

�� �A lista foi feita pra ser ajudado e ajudar e n�o irritar.

�� Nem vou estender mais para n�o virar mais um flame dentro de outro...

��Abra�os,�e desculpa ai ADMINs, mas ja deu...

Luiz Escobar


Gabriel Bruno Oliveira Mendonça

unread,
Jun 23, 2010, 10:39:39 PM6/23/10
to list...@googlegroups.com
Sem mais milongas, você está certo aqui deve ser um local de troca de esperiências.



De: Luiz Escobar <esc...@megasistema.com.br>
Para: list...@googlegroups.com
Enviadas: Quarta-feira, 23 de Junho de 2010 23:09:19
Assunto: Re: [ PHP - Google ] Fiz besteira no MySQL, como dar rollback?


   Puta merda que gente eXtressada.....

   Nossa uma simples pergunta vira flame aqui...  ta tão PHod@ fica apagando isso que  tive responder, vamos acalmar os animos, a fazer o seguinte....

   ALLguem pergunta, vc sabe ? então se QUIZER responde, vc NÃO sabe, não responde, NÃO gostou, NÃO responde, NÃO ta com tempo, não responde, não quer responder, não responde,  quem perguntou, se não teve resposta, pode pergunta +1x, sem cobrança de resposta, pq afinal ninguém é obrigado a responder, e talvez quem viu não sabe mesmo responder, então vamos respeitar.

    A lista foi feita pra ser ajudado e ajudar e não irritar.

   Nem vou estender mais para não virar mais um flame dentro de outro...

  Abraços, e desculpa ai ADMINs, mas ja deu...

Luiz Escobar

Suissa

unread,
Jun 23, 2010, 10:55:59 PM6/23/10
to list...@googlegroups.com
Eu creio que ensinar a pesquisar tb é uma forma de ensinar, pq pelo visto nem isso o pessoal sabe fazer. Qnts vezes geral ja mandou pesquisar no google, é simples e não dói. #ficadica

eXperimentem essa eXperiência   ;D

2010/6/23 Gabriel Bruno Oliveira Mendonça <bruno...@yahoo.com.br>

Gustavo Almeida

unread,
Jun 23, 2010, 11:01:06 PM6/23/10
to list...@googlegroups.com
Bruno...
 
Volta com a moderação de mão de ferro.
Aqui não dá pra dar liberdade!
 
Esse tópico já deu!

Erick Couto

unread,
Jun 24, 2010, 12:04:21 AM6/24/10
to list...@googlegroups.com
galera.. TÓPICO ENCERRADO

2010/6/24 Gustavo Almeida <gus...@gmasoftwares.com.br>

Deivisson Sedrez

unread,
Jul 1, 2010, 10:02:56 AM7/1/10
to list...@googlegroups.com
Bah suissa, cai fora, deixa de ser ignorante, sou extremamente a favor do que o pedro fez, pra mim a idéia da lista é justamente perguntar se alguem conhece ou ja fez, pra dizer se deu certo, se nao deu, se recomenda outra coisa, mandar buscar no google entao tu que nem responda os topicos

juro que não queria entrar nessa discussao, mas depois da tua estupidez, até se achando melhor e chamando outros de noob

se tu fosse tão melhor tinhas dado uma sugestão decente, e nao busca no google.

desculpa aos moderadores pelo desabafo
Att
Deivisson Sedrez


2010/6/24 Erick Couto <erickc...@gmail.com>

Filipe Mtro

unread,
Jul 1, 2010, 4:26:15 PM7/1/10
to list...@googlegroups.com
E por favor não ficar respondendo o tópico para falar besteira, respondam com a solução se possível, porque ficar lendo essas bolotas de morfo inutil no meu dia de trabalho é
a pior coisa do mundo, e ainda mais essas briguinhas. por favor vamos nos conscientizar ai, PHP blz? morreu assunto.

Sempre à Disposição.


2010/7/1 Deivisson Sedrez <deivisso...@gmail.com>

Norivan Oliveira

unread,
Jul 2, 2010, 3:34:02 PM7/2/10
to list...@googlegroups.com
Hipocrita, aposto que já fez pior
Att.,
Norivan Oliveira
(Programador)
J2EE: Java Server Faces / Hibernate / Richfaces
PHP: Code Igniter / Doctrine / Smarty
JS: Mojo / Mootools
SQL: MySQL / Postgres / SQLite

Suissa

unread,
Jul 2, 2010, 3:36:50 PM7/2/10
to list...@googlegroups.com
Obrigado as pessoas que ressussitam tópicos encerrados!

TÓPICO ENCERRADO == TÓPICO ENCERRADO

--'

Erick Couto

unread,
Jul 2, 2010, 3:41:31 PM7/2/10
to list...@googlegroups.com
qualquer comentário a partir deste POST causará a moderação do usuário que responder.

TÓPICO ENCERRADO


2010/7/2 Suissa <jnasc...@gmail.com>
Reply all
Reply to author
Forward
0 new messages