¿Cómo recuperar las filas recién eliminadas en mysql?

¿Es posible restaurar la tabla a la última vez con datos si todos los datos se eliminaron accidentalmente?

Hay otra solución, si tiene registros binarios activos en su servidor puede usar mysqlbinlog

generar un archivo sql con ella

 mysqlbinlog binary_log_file > query_log.sql 

luego busca tus filas faltantes. Si no lo tienes activo, no hay otra solución. Haga copias de seguridad la próxima vez.

Más o menos Usando phpMyAdmin acabo de eliminar una fila demasiadas. Pero lo atrapé antes de continuar y tuve la mayoría de los datos del mensaje de confirmación de eliminación. Pude reconstruir el registro. Pero el mensaje de confirmación truncó algunos comentarios de texto.

Alguien más conocedor que yo con respecto a phpMyAdmin puede conocer una configuración para que pueda obtener un eco más completo del mensaje de confirmación de eliminación. Con un mensaje de eliminación completo disponible, si reduce la velocidad y detecta su error, puede restaurar todo el registro.

(PD: esta aplicación también envía un correo electrónico de la presentación que crea el registro. Si el cliente tiene una copia, podré restaurar el registro por completo)

Como mencionó Mitch, respaldar los datos es el mejor método.

Sin embargo, tal vez sea posible extraer los datos perdidos parcialmente dependiendo de la situación o del servidor de base de datos utilizado. En su mayor parte, no tiene suerte si no tiene ninguna copia de seguridad.

Lo siento, pero no es posible, a menos que hayas hecho una copia de seguridad antes.

EDITAR: En realidad es posible, pero se vuelve muy complicado y no deberías pensar si los datos no eran realmente, realmente importantes. Verá: cuando los datos se borran de una computadora, aún permanecen en el mismo lugar en el disco, solo sus sectores se marcan como vacíos. Por lo tanto, los datos permanecen intactos, excepto si se sobreescriben con nuevos datos. Hay varios progtwigs diseñados para este propósito y hay compañías que se especializan en recuperación de datos, aunque son bastante costosas.

No, esto no es posible. La única solución será tener copias de seguridad periódicas. Esto es muy importante.

Para las tablas InnoDB, Percona tiene una herramienta de recuperación que puede ayudar . Está lejos de ser a prueba de fallas o perfecto, y qué tan rápido detuvo su servidor MySQL después de las eliminaciones accidentales tiene un gran impacto. Si eres lo suficientemente rápido, los cambios pueden recuperar bastante datos, pero recuperar todos los datos es casi imposible.

Por supuesto, las copias de seguridad diarias adecuadas, los binlogs y posiblemente un esclavo de replicación (que no ayudará con eliminaciones accidentales pero sí ayuda en caso de falla del hardware) son el camino a seguir, pero esta herramienta podría permitirle guardar tantos datos como posible cuando aún no los tenías.

Lamentablemente no. Si estaba ejecutando el servidor en la configuración predeterminada, vaya a obtener sus copias de seguridad ( tiene copias de seguridad, ¿no?): Generalmente, una base de datos no mantiene versiones anteriores de sus datos, o una revisión de cambios: solo el estado actual.

(Alternativamente, si ha eliminado los datos a través de una interfaz personalizada, es muy posible que la interfaz no emita un DELETE: muchas tablas tienen un campo is_deleted o similar, y esto simplemente se alterna con la interfaz. Tenga en cuenta que esto es una “eliminación suave” implementada en la aplicación frontend – los datos no se eliminan realmente en tales casos, si realmente emitió un DELETE , TRUNCATE o un comando SQL similar, esto no es aplicable).

Si usa tablas MyISAM , puede recuperar cualquier dato que haya eliminado, solo

abrir archivo: mysql / data / [your_db] / [your_table] .MYD

con cualquier editor de texto